diff --git a/src/mesa/glapi/glX_XML.py b/src/mesa/glapi/glX_XML.py
index 3759e8da02e..1b5c3239e01 100644
--- a/src/mesa/glapi/glX_XML.py
+++ b/src/mesa/glapi/glX_XML.py
@@ -262,7 +262,7 @@ class glx_function(gl_XML.gl_function):
if param.name != self.img_reset:
param.offset = offset
- if not param.is_variable_length():
+ if not param.is_variable_length() and not param.is_client_only:
offset += param.size()
if self.pad_after( param ):
@@ -331,7 +331,7 @@ class glx_function(gl_XML.gl_function):
size = 0
for param in self.parameterIterateGlxSend(0):
- if param.name != self.img_reset:
+ if param.name != self.img_reset and not param.is_client_only:
if size == 0:
size = param.offset + param.size()
else:
diff --git a/src/mesa/glapi/gl_API.dtd b/src/mesa/glapi/gl_API.dtd
index 2f0c88aae5b..f89d3818663 100644
--- a/src/mesa/glapi/gl_API.dtd
+++ b/src/mesa/glapi/gl_API.dtd
@@ -40,6 +40,7 @@
mode (get | set) "set">
' tag.
param:
name - name of the parameter
type - fully qualified type (e.g., with "const", etc.)
+ client_only - boolean flag set on parameters which are interpreted only
+ by the client and are not present in the protocol encoding (e.g.,
+ the stride parameters to Map1f, etc.)
count - for counted arrays (e.g., the 'lists' parameter to glCallLists),
the parameter or literal that represents the count. For functions
like glVertex3fv it will be a litteral, for others it will be one of
diff --git a/src/mesa/glapi/gl_API.xml b/src/mesa/glapi/gl_API.xml
index 4f3a8805e08..905c4a03a67 100644
--- a/src/mesa/glapi/gl_API.xml
+++ b/src/mesa/glapi/gl_API.xml
@@ -2364,9 +2364,9 @@
-
+
-
+
@@ -2374,9 +2374,9 @@
-
+
-
+
@@ -2384,13 +2384,13 @@
-
+
-
+
-
+
@@ -2398,13 +2398,13 @@
-
+
-
+
-
+
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
index 15c3adc02b7..b7a7388400d 100644
--- a/src/mesa/glapi/gl_XML.py
+++ b/src/mesa/glapi/gl_XML.py
@@ -438,8 +438,9 @@ class gl_parameter:
#if ts == "GLdouble":
# print '/* stack size -> %s = %u (after) */' % (self.name, self.type_expr.get_stack_size())
- self.is_counter = is_attr_true( element, 'counter' )
- self.is_output = is_attr_true( element, 'output' )
+ self.is_client_only = is_attr_true( element, 'client_only' )
+ self.is_counter = is_attr_true( element, 'counter' )
+ self.is_output = is_attr_true( element, 'output' )
# Pixel data has special parameters.