i965: Stop setting up a 1:1 "attrib" member in our vertex inputs.
authorEric Anholt <eric@anholt.net>
Sun, 6 Apr 2014 19:08:37 +0000 (12:08 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 11 Apr 2014 20:38:53 +0000 (13:38 -0700)
It's just the array index, so we can just go look at the array and see
which element we are.

No significant performance difference (n=140)

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_draw.c
src/mesa/drivers/dri/i965/brw_draw_upload.c
src/mesa/drivers/dri/i965/gen8_draw_upload.c

index f8ca58fdd5b18ce6206aad50b1054332db742b83..82b38fca80336fcb2921af2cd93e18d98d022e3b 100644 (file)
@@ -833,8 +833,6 @@ struct brw_vertex_element {
 
    int buffer;
 
-   /** The corresponding Mesa vertex attribute */
-   gl_vert_attrib attrib;
    /** Offset of the first element within the buffer object */
    unsigned int offset;
 };
index 0c131be806affa10662d07c2b484f2f11ded13e9..583c7d66b209655da7acbb0eb353094520c39fb1 100644 (file)
@@ -291,7 +291,6 @@ static void brw_merge_inputs( struct brw_context *brw,
    for (i = 0; i < VERT_ATTRIB_MAX; i++) {
       brw->vb.inputs[i].buffer = -1;
       brw->vb.inputs[i].glarray = arrays[i];
-      brw->vb.inputs[i].attrib = (gl_vert_attrib) i;
    }
 }
 
index 2b56cdedd1c139d7b7c8a5d58dbb74d8e6efd731..45e9d3f93d237d0518e4b460d00370b4310a4525 100644 (file)
@@ -713,7 +713,7 @@ static void brw_emit_vertices(struct brw_context *brw)
       uint32_t comp2 = BRW_VE1_COMPONENT_STORE_SRC;
       uint32_t comp3 = BRW_VE1_COMPONENT_STORE_SRC;
 
-      if (input->attrib == VERT_ATTRIB_EDGEFLAG) {
+      if (input == &brw->vb.inputs[VERT_ATTRIB_EDGEFLAG]) {
          /* Gen6+ passes edgeflag as sideband along with the vertex, instead
           * of in the VUE.  We have to upload it sideband as the last vertex
           * element according to the B-Spec.
index 83bc2402a2a8b2c18e629fec486441c19b2fa24f..0272892d51973b67d606ec37edbc4ecdd536dd90 100644 (file)
@@ -139,7 +139,7 @@ gen8_emit_vertices(struct brw_context *brw)
        * glEdgeFlagPointer, on the other hand, gives us an unnormalized
        * integer ubyte.  Just rewrite that to convert to a float.
        */
-      if (input->attrib == VERT_ATTRIB_EDGEFLAG) {
+      if (input == &brw->vb.inputs[VERT_ATTRIB_EDGEFLAG]) {
          /* Gen6+ passes edgeflag as sideband along with the vertex, instead
           * of in the VUE.  We have to upload it sideband as the last vertex
           * element according to the B-Spec.