[Mesa-dev] [PATCH] fix bfo#59876: glGetTexLevelParameteriv broken for indirect rendering

"Stefan Brüns" Stefan.Bruens at rwth-aachen.de
Tue Feb 5 08:29:20 PST 2013


A single element in a GLX reply is contained in the header itself.
The number of elements is denoted in the "n" field of the reply, if
"n" is 1, the length of additional data is 0.
The XXX_data_length() function of xcb does not return the length of
the (optional, n>1) data but the number of elements.

Signed-off-by: Stefan Brüns <stefan.bruens at rwth-aachen.de>
---
 src/mapi/glapi/gen/glX_proto_send.py |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/mapi/glapi/gen/glX_proto_send.py b/src/mapi/glapi/gen/glX_proto_send.py
index fbc0dd3..ae6b8d9 100644
--- a/src/mapi/glapi/gen/glX_proto_send.py
+++ b/src/mapi/glapi/gen/glX_proto_send.py
@@ -700,7 +700,9 @@ generic_%u_byte( GLint rop, const void * ptr )
                         if f.reply_always_array:
                             print '        (void)memcpy(%s, %s_data(reply), %s_data_length(reply) * sizeof(%s));' % (output.name, xcb_name, xcb_name, output.get_base_type_string())
                         else:
-                            print '        if (%s_data_length(reply) == 0)' % (xcb_name)
+                            print '        // the XXX_data_length() xcb function name is misleading, it returns the number'
+                            print '        // of elements, not the lenght of the data part. A single element is embedded.'
+                            print '        if (%s_data_length(reply) == 1)' % (xcb_name)
                             print '            (void)memcpy(%s, &reply->datum, sizeof(reply->datum));' % (output.name)
                             print '        else'
                             print '            (void)memcpy(%s, %s_data(reply), %s_data_length(reply) * sizeof(%s));' % (output.name, xcb_name, xcb_name, output.get_base_type_string())
-- 
Stefan Brüns  /  Bergstraße 21  /  52062 Aachen
phone: +49 241 53809034     mobile: +49 151 50412019


More information about the mesa-dev mailing list