The opcode and command length fields of RenderLarge commands were
authorIan Romanick <idr@us.ibm.com>
Mon, 3 Jan 2005 21:03:03 +0000 (21:03 +0000)
committerIan Romanick <idr@us.ibm.com>
Mon, 3 Jan 2005 21:03:03 +0000 (21:03 +0000)
mistakenly emitted in the wrong order.

src/glx/x11/indirect.c
src/mesa/glapi/glX_proto_send.py

index 965a4a2961a6b277eb52c5097498ad32976a072e..e8f716f90d6b02e602d7b57ea83a06def1e40252 100644 (file)
@@ -276,8 +276,8 @@ __indirect_glCallLists(GLsizei n, GLenum type, const GLvoid * lists)
             const GLint op = X_GLrop_CallLists;
             const GLuint cmdlenLarge = cmdlen + 4;
             GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);
-            (void) memcpy((void *)(pc + 0), (void *)(&op), 4);
-            (void) memcpy((void *)(pc + 4), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 4), (void *)(&op), 4);
             (void) memcpy((void *)(pc + 8), (void *)(&n), 4);
             (void) memcpy((void *)(pc + 12), (void *)(&type), 4);
             __glXSendLargeCommand(gc, pc, 16, lists, (compsize * n));
@@ -2992,8 +2992,8 @@ __indirect_glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values)
             const GLint op = X_GLrop_PixelMapfv;
             const GLuint cmdlenLarge = cmdlen + 4;
             GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);
-            (void) memcpy((void *)(pc + 0), (void *)(&op), 4);
-            (void) memcpy((void *)(pc + 4), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 4), (void *)(&op), 4);
             (void) memcpy((void *)(pc + 8), (void *)(&map), 4);
             (void) memcpy((void *)(pc + 12), (void *)(&mapsize), 4);
             __glXSendLargeCommand(gc, pc, 16, values, (mapsize * 4));
@@ -3023,8 +3023,8 @@ __indirect_glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values)
             const GLint op = X_GLrop_PixelMapuiv;
             const GLuint cmdlenLarge = cmdlen + 4;
             GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);
-            (void) memcpy((void *)(pc + 0), (void *)(&op), 4);
-            (void) memcpy((void *)(pc + 4), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 4), (void *)(&op), 4);
             (void) memcpy((void *)(pc + 8), (void *)(&map), 4);
             (void) memcpy((void *)(pc + 12), (void *)(&mapsize), 4);
             __glXSendLargeCommand(gc, pc, 16, values, (mapsize * 4));
@@ -3054,8 +3054,8 @@ __indirect_glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values)
             const GLint op = X_GLrop_PixelMapusv;
             const GLuint cmdlenLarge = cmdlen + 4;
             GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);
-            (void) memcpy((void *)(pc + 0), (void *)(&op), 4);
-            (void) memcpy((void *)(pc + 4), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);
+            (void) memcpy((void *)(pc + 4), (void *)(&op), 4);
             (void) memcpy((void *)(pc + 8), (void *)(&map), 4);
             (void) memcpy((void *)(pc + 12), (void *)(&mapsize), 4);
             __glXSendLargeCommand(gc, pc, 16, values, (mapsize * 2));
index 023b07ee3bd8cb8719aaae67a8db183ff16cd464..15d1fa69fd3ae52774ef38632aa072856b4b3d00 100644 (file)
@@ -181,6 +181,15 @@ generic_%u_byte( GLint rop, const void * ptr )
                return offset
 
 
+       def large_emit_begin(self, indent, f):
+               print '%s    const GLint op = %s;' % (indent, f.opcode_real_name())
+               print '%s    const GLuint cmdlenLarge = cmdlen + 4;' % (indent)
+               print '%s    GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);' % (indent)
+               print '%s    (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4);' % (indent)
+               print '%s    (void) memcpy((void *)(pc + 4), (void *)(&op), 4);' % (indent)
+               return
+
+
        def common_func_print_just_header(self, f):
                print '#define %s %d' % (f.opcode_name(), f.opcode_value())
 
@@ -316,11 +325,8 @@ generic_%u_byte( GLint rop, const void * ptr )
                if f.can_be_large:
                        print '%s}' % (indent)
                        print '%selse {' % (indent)
-                       print '%s    const GLint op = %s;' % (indent, f.opcode_real_name())
-                       print '%s    const GLuint cmdlenLarge = cmdlen + 4;' % (indent)
-                       print '%s    GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc);' % (indent)
-                       print '%s    (void) memcpy((void *)(pc + 0), (void *)(&op), 4);' % (indent)
-                       print '%s    (void) memcpy((void *)(pc + 4), (void *)(&cmdlenLarge), 4);' % (indent)
+
+                       self.large_emit_begin(indent, f)
                        offset = self.common_emit_args(f, "pc", indent, 8, 1)
                        
                        p = f.variable_length_parameter()