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

index 0342aa53dbde2bb0d6e853a0785be49cca23a6df..e90f14687c0e4f9e1e42a6e2a27acda6c43897d8 100644 (file)
@@ -139,7 +139,7 @@ void brw_clip_interp_vertex( struct brw_clip_compile *c,
 {
    struct brw_compile *p = &c->func;
    struct brw_reg tmp = get_tmp(c);
-   GLuint i;
+   GLuint slot;
 
    /* Just copy the vertex header:
     */
@@ -151,10 +151,10 @@ void brw_clip_interp_vertex( struct brw_clip_compile *c,
       
    /* Iterate over each attribute (could be done in pairs?)
     */
-   for (i = 0; i < c->nr_attrs; i++) {
-      GLuint delta = ATTR_SIZE * (2*c->header_regs + i);
+   for (slot = 2*c->header_regs; slot < c->vue_map.num_slots; slot++) {
+      GLuint delta = ATTR_SIZE * slot;
 
-      if (c->idx_to_attr[i] == VERT_RESULT_EDGE) {
+      if (c->vue_map.slot_to_vert_result[slot] == VERT_RESULT_EDGE) {
         if (force_edgeflag) 
            brw_MOV(p, deref_4f(dest_ptr, delta), brw_imm_f(1));
         else
@@ -182,7 +182,7 @@ void brw_clip_interp_vertex( struct brw_clip_compile *c,
       }
    }
 
-   if (i & 1) {
+   if (c->vue_map.num_slots % 2) {
       GLuint delta = c->vue_map.num_slots * ATTR_SIZE;
 
       brw_MOV(p, deref_4f(dest_ptr, delta), brw_imm_f(0));