mesa: add/update comments in _mesa_copy_buffer_subdata()
[mesa.git] / src / mesa / drivers / dri / i965 / brw_clip_unfilled.c
index 53345f150766ffd9bc059fca5995645f70e96adf..03c7d428bd23b896849f2bdaf3b3e74ab7ee804d 100644 (file)
@@ -159,14 +159,22 @@ static void copy_bfc( struct brw_clip_compile *c )
         if (brw_clip_have_vert_result(c, VERT_RESULT_COL0) &&
              brw_clip_have_vert_result(c, VERT_RESULT_BFC0))
            brw_MOV(p, 
-                   byte_offset(c->reg.vertex[i], c->offset[VERT_RESULT_COL0]),
-                   byte_offset(c->reg.vertex[i], c->offset[VERT_RESULT_BFC0]));
+                   byte_offset(c->reg.vertex[i],
+                                brw_vert_result_to_offset(&c->vue_map,
+                                                          VERT_RESULT_COL0)),
+                   byte_offset(c->reg.vertex[i],
+                                brw_vert_result_to_offset(&c->vue_map,
+                                                          VERT_RESULT_BFC0)));
 
         if (brw_clip_have_vert_result(c, VERT_RESULT_COL1) &&
              brw_clip_have_vert_result(c, VERT_RESULT_BFC1))
            brw_MOV(p, 
-                   byte_offset(c->reg.vertex[i], c->offset[VERT_RESULT_COL1]),
-                   byte_offset(c->reg.vertex[i], c->offset[VERT_RESULT_BFC1]));
+                   byte_offset(c->reg.vertex[i],
+                                brw_vert_result_to_offset(&c->vue_map,
+                                                          VERT_RESULT_COL1)),
+                   byte_offset(c->reg.vertex[i],
+                                brw_vert_result_to_offset(&c->vue_map,
+                                                          VERT_RESULT_BFC1)));
       }
    }
    brw_ENDIF(p);
@@ -225,12 +233,18 @@ static void merge_edgeflags( struct brw_clip_compile *c )
    {   
       brw_set_conditionalmod(p, BRW_CONDITIONAL_EQ);
       brw_AND(p, vec1(brw_null_reg()), get_element_ud(c->reg.R0, 2), brw_imm_ud(1<<8));
-      brw_MOV(p, byte_offset(c->reg.vertex[0], c->offset[VERT_RESULT_EDGE]), brw_imm_f(0));
+      brw_MOV(p, byte_offset(c->reg.vertex[0],
+                             brw_vert_result_to_offset(&c->vue_map,
+                                                       VERT_RESULT_EDGE)),
+              brw_imm_f(0));
       brw_set_predicate_control(p, BRW_PREDICATE_NONE);
 
       brw_set_conditionalmod(p, BRW_CONDITIONAL_EQ);
       brw_AND(p, vec1(brw_null_reg()), get_element_ud(c->reg.R0, 2), brw_imm_ud(1<<9));
-      brw_MOV(p, byte_offset(c->reg.vertex[2], c->offset[VERT_RESULT_EDGE]), brw_imm_f(0));
+      brw_MOV(p, byte_offset(c->reg.vertex[2],
+                             brw_vert_result_to_offset(&c->vue_map,
+                                                       VERT_RESULT_EDGE)),
+              brw_imm_f(0));
       brw_set_predicate_control(p, BRW_PREDICATE_NONE);
    }
    brw_ENDIF(p);
@@ -256,10 +270,9 @@ static void apply_one_offset( struct brw_clip_compile *c,
  * Output clipped polygon as an unfilled primitive:
  */
 static void emit_lines(struct brw_clip_compile *c,
-                      GLboolean do_offset)
+                      bool do_offset)
 {
    struct brw_compile *p = &c->func;
-   struct brw_instruction *loop;
    struct brw_indirect v0 = brw_indirect(0, 0);
    struct brw_indirect v1 = brw_indirect(1, 0);
    struct brw_indirect v0ptr = brw_indirect(2, 0);
@@ -271,7 +284,7 @@ static void emit_lines(struct brw_clip_compile *c,
       brw_MOV(p, c->reg.loopcount, c->reg.nr_verts);
       brw_MOV(p, get_addr_reg(v0ptr), brw_address(c->reg.inlist));
 
-      loop = brw_DO(p, BRW_EXECUTE_1);
+      brw_DO(p, BRW_EXECUTE_1);
       {
         brw_MOV(p, get_addr_reg(v0), deref_1uw(v0ptr, 0));
         brw_ADD(p, get_addr_reg(v0ptr), get_addr_reg(v0ptr), brw_imm_uw(2));
@@ -281,7 +294,7 @@ static void emit_lines(struct brw_clip_compile *c,
         brw_set_conditionalmod(p, BRW_CONDITIONAL_G);
         brw_ADD(p, c->reg.loopcount, c->reg.loopcount, brw_imm_d(-1));
       }
-      brw_WHILE(p, loop);
+      brw_WHILE(p);
    }
 
    /* v1ptr = &inlist[nr_verts]
@@ -293,7 +306,7 @@ static void emit_lines(struct brw_clip_compile *c,
    brw_ADD(p, get_addr_reg(v1ptr), get_addr_reg(v1ptr), retype(c->reg.nr_verts, BRW_REGISTER_TYPE_UW));
    brw_MOV(p, deref_1uw(v1ptr, 0), deref_1uw(v0ptr, 0));
 
-   loop = brw_DO(p, BRW_EXECUTE_1);
+   brw_DO(p, BRW_EXECUTE_1);
    {
       brw_MOV(p, get_addr_reg(v0), deref_1uw(v0ptr, 0));
       brw_MOV(p, get_addr_reg(v1), deref_1uw(v0ptr, 2));
@@ -302,28 +315,32 @@ static void emit_lines(struct brw_clip_compile *c,
       /* draw edge if edgeflag != 0 */
       brw_CMP(p, 
              vec1(brw_null_reg()), BRW_CONDITIONAL_NZ, 
-             deref_1f(v0, c->offset[VERT_RESULT_EDGE]),
+             deref_1f(v0, brw_vert_result_to_offset(&c->vue_map,
+                                                     VERT_RESULT_EDGE)),
              brw_imm_f(0));
       brw_IF(p, BRW_EXECUTE_1);
       {
-        brw_clip_emit_vue(c, v0, 1, 0, (_3DPRIM_LINESTRIP << 2) | R02_PRIM_START);
-        brw_clip_emit_vue(c, v1, 1, 0, (_3DPRIM_LINESTRIP << 2) | R02_PRIM_END);
+        brw_clip_emit_vue(c, v0, 1, 0,
+                           (_3DPRIM_LINESTRIP << URB_WRITE_PRIM_TYPE_SHIFT)
+                           | URB_WRITE_PRIM_START);
+        brw_clip_emit_vue(c, v1, 1, 0,
+                           (_3DPRIM_LINESTRIP << URB_WRITE_PRIM_TYPE_SHIFT)
+                           | URB_WRITE_PRIM_END);
       }
       brw_ENDIF(p);
 
       brw_set_conditionalmod(p, BRW_CONDITIONAL_NZ);
       brw_ADD(p, c->reg.loopcount, c->reg.loopcount, brw_imm_d(-1));
    }
-   brw_WHILE(p, loop);
+   brw_WHILE(p);
 }
 
 
 
 static void emit_points(struct brw_clip_compile *c,
-                       GLboolean do_offset )
+                       bool do_offset )
 {
    struct brw_compile *p = &c->func;
-   struct brw_instruction *loop;
 
    struct brw_indirect v0 = brw_indirect(0, 0);
    struct brw_indirect v0ptr = brw_indirect(2, 0);
@@ -331,7 +348,7 @@ static void emit_points(struct brw_clip_compile *c,
    brw_MOV(p, c->reg.loopcount, c->reg.nr_verts);
    brw_MOV(p, get_addr_reg(v0ptr), brw_address(c->reg.inlist));
 
-   loop = brw_DO(p, BRW_EXECUTE_1);
+   brw_DO(p, BRW_EXECUTE_1);
    {
       brw_MOV(p, get_addr_reg(v0), deref_1uw(v0ptr, 0));
       brw_ADD(p, get_addr_reg(v0ptr), get_addr_reg(v0ptr), brw_imm_uw(2));
@@ -340,21 +357,24 @@ static void emit_points(struct brw_clip_compile *c,
        */
       brw_CMP(p, 
              vec1(brw_null_reg()), BRW_CONDITIONAL_NZ, 
-             deref_1f(v0, c->offset[VERT_RESULT_EDGE]),
+             deref_1f(v0, brw_vert_result_to_offset(&c->vue_map,
+                                                     VERT_RESULT_EDGE)),
              brw_imm_f(0));
       brw_IF(p, BRW_EXECUTE_1);
       {
         if (do_offset)
            apply_one_offset(c, v0);
 
-        brw_clip_emit_vue(c, v0, 1, 0, (_3DPRIM_POINTLIST << 2) | R02_PRIM_START | R02_PRIM_END);
+        brw_clip_emit_vue(c, v0, 1, 0,
+                           (_3DPRIM_POINTLIST << URB_WRITE_PRIM_TYPE_SHIFT)
+                           | URB_WRITE_PRIM_START | URB_WRITE_PRIM_END);
       }
       brw_ENDIF(p);
 
       brw_set_conditionalmod(p, BRW_CONDITIONAL_NZ);
       brw_ADD(p, c->reg.loopcount, c->reg.loopcount, brw_imm_d(-1));
    }
-   brw_WHILE(p, loop);
+   brw_WHILE(p);
 }
 
 
@@ -365,7 +385,7 @@ static void emit_points(struct brw_clip_compile *c,
 
 static void emit_primitives( struct brw_clip_compile *c,
                             GLuint mode, 
-                            GLboolean do_offset )
+                            bool do_offset )
 {
    switch (mode) {
    case CLIP_FILL: