i965: Clarify the nr_regs calculation in brw_clip.c
authorEric Anholt <eric@anholt.net>
Mon, 19 Jul 2010 23:11:19 +0000 (16:11 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 20 Jul 2010 02:29:03 +0000 (19:29 -0700)
src/mesa/drivers/dri/i965/brw_clip.c

index 228ee3f3be16dff936502647ea588ca1f706de16..96d278f17035c2eef12aa96cdb78e5debb5700b6 100644 (file)
@@ -83,11 +83,16 @@ static void compile_clip_prog( struct brw_context *brw,
       }
 
    c.nr_attrs = brw_count_bits(c.key.attrs);
-   
+
+   /* The vertex attributes start at a URB row-aligned offset after
+    * the 8-20 dword vertex header, and continue for a URB row-aligned
+    * length.  nr_regs determines the urb_read_length from the start
+    * of the header to the end of the vertex data.
+    */
    if (intel->gen == 5)
-       c.nr_regs = (c.nr_attrs + 1) / 2 + 3;  /* are vertices packed, or reg-aligned? */
+       c.nr_regs = 3 + (c.nr_attrs + 1) / 2;
    else
-       c.nr_regs = (c.nr_attrs + 1) / 2 + 1;  /* are vertices packed, or reg-aligned? */
+       c.nr_regs = 1 + (c.nr_attrs + 1) / 2;
 
    c.nr_bytes = c.nr_regs * REG_SIZE;