i965: clip: Modify brw_clip_tri_alloc_regs() to use the VUE map.
authorPaul Berry <stereotype441@gmail.com>
Thu, 25 Aug 2011 15:06:31 +0000 (08:06 -0700)
committerPaul Berry <stereotype441@gmail.com>
Tue, 6 Sep 2011 18:05:14 +0000 (11:05 -0700)
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_clip_tri.c

index 0f938fe0b6ff4cdcb94cc9995917b9962a8b7978..d0638748d71012f0e84c0ec87360ce23e8cf4176 100644 (file)
@@ -74,9 +74,12 @@ void brw_clip_tri_alloc_regs( struct brw_clip_compile *c,
       i += c->nr_regs;
    }
 
-   if (c->nr_attrs & 1) {
+   if (c->vue_map.num_slots % 2) {
+      /* The VUE has an odd number of slots so the last register is only half
+       * used.  Fill the second half with zero.
+       */
       for (j = 0; j < 3; j++) {
-        GLuint delta = c->offset[c->idx_to_attr[c->nr_attrs - 1]] + ATTR_SIZE;
+        GLuint delta = c->vue_map.num_slots * ATTR_SIZE;
 
         brw_MOV(&c->func, byte_offset(c->reg.vertex[j], delta), brw_imm_f(0));
       }