Merge branch 'master' of git+ssh://keithw@git.freedesktop.org/git/mesa/mesa into...
[mesa.git] / src / mesa / drivers / dri / i965 / brw_vs_tnl.c
index 82c1958887f00ae05df28dbf01d9eadb10473cc1..0d61092247ab0b61ef992a8f7de6c85a421c40bf 100644 (file)
@@ -146,9 +146,13 @@ static void make_state_key( GLcontext *ctx, struct state_key *key )
       }
 
       /* BRW_NEW_INPUT_VARYING */
-      for (i = BRW_ATTRIB_MAT_FRONT_AMBIENT ; i < BRW_ATTRIB_MAX ; i++) 
-        if (brw->vb.info.varying & ((GLuint64EXT)1<<i)) 
-           key->light_material_mask |= 1<<(i-BRW_ATTRIB_MAT_FRONT_AMBIENT);
+
+      /* For these programs, material values are stuffed into the
+       * generic slots:
+       */
+      for (i = 0 ; i < MAT_ATTRIB_MAX ; i++) 
+        if (brw->vb.info.varying & (1<<(VERT_ATTRIB_GENERIC0 + i))) 
+           key->light_material_mask |= 1<<i;
 
       for (i = 0; i < MAX_LIGHTS; i++) {
         struct gl_light *light = &brw->attribs.Light->Light[i];
@@ -374,17 +378,10 @@ static void release_temps( struct tnl_program *p )
 
 static struct ureg register_input( struct tnl_program *p, GLuint input )
 {
-   GLuint orig_input = input;
-   /* Cram the material flags into the generic range.  We'll translate
-    * them back later.
-    */
-   if (input >= BRW_ATTRIB_MAT_FRONT_AMBIENT)
-      input -= BRW_ATTRIB_MAT_FRONT_AMBIENT - BRW_ATTRIB_GENERIC0;
-
    assert(input < 32);
 
    p->program->Base.InputsRead |= (1<<input);
-   return make_ureg(PROGRAM_INPUT, orig_input);
+   return make_ureg(PROGRAM_INPUT, input);
 }
 
 static struct ureg register_output( struct tnl_program *p, GLuint output )
@@ -647,7 +644,7 @@ static void emit_passthrough( struct tnl_program *p,
 static struct ureg get_eye_position( struct tnl_program *p )
 {
    if (is_undef(p->eye_position)) {
-      struct ureg pos = register_input( p, BRW_ATTRIB_POS ); 
+      struct ureg pos = register_input( p, VERT_ATTRIB_POS ); 
       struct ureg modelview[4];
 
       p->eye_position = reserve_temp(p);
@@ -710,7 +707,7 @@ static struct ureg get_eye_position_normalized( struct tnl_program *p )
 static struct ureg get_eye_normal( struct tnl_program *p )
 {
    if (is_undef(p->eye_normal)) {
-      struct ureg normal = register_input(p, BRW_ATTRIB_NORMAL );
+      struct ureg normal = register_input(p, VERT_ATTRIB_NORMAL );
       struct ureg mvinv[3];
 
       register_matrix_param6( p, STATE_MATRIX, STATE_MODELVIEW, 0, 0, 2,
@@ -743,7 +740,7 @@ static struct ureg get_eye_normal( struct tnl_program *p )
 
 static void build_hpos( struct tnl_program *p )
 {
-   struct ureg pos = register_input( p, BRW_ATTRIB_POS ); 
+   struct ureg pos = register_input( p, VERT_ATTRIB_POS ); 
    struct ureg hpos = register_output( p, VERT_RESULT_HPOS );
    struct ureg mvp[4];
 
@@ -787,9 +784,9 @@ static struct ureg get_material( struct tnl_program *p, GLuint side,
    GLuint attrib = material_attrib(side, property);
 
    if (p->color_materials & (1<<attrib))
-      return register_input(p, BRW_ATTRIB_COLOR0);
+      return register_input(p, VERT_ATTRIB_COLOR0);
    else if (p->materials & (1<<attrib)) 
-      return register_input( p, attrib + BRW_ATTRIB_MAT_FRONT_AMBIENT );
+      return register_input( p, attrib + _TNL_ATTRIB_MAT_FRONT_AMBIENT );
    else
       return register_param3( p, STATE_MATERIAL, side, property );
 }
@@ -1157,7 +1154,7 @@ static void build_fog( struct tnl_program *p )
       input = swizzle1(get_eye_position(p), Z);
    }
    else {
-      input = swizzle1(register_input(p, BRW_ATTRIB_FOG), X);
+      input = swizzle1(register_input(p, VERT_ATTRIB_FOG), X);
    }
 
    if (p->state->fog_option &&
@@ -1299,7 +1296,7 @@ static void build_texture_transform( struct tnl_program *p )
            for (j = 0; j < 4; j++) {
               switch (modes[j]) {
               case TXG_OBJ_LINEAR: {
-                 struct ureg obj = register_input(p, BRW_ATTRIB_POS);
+                 struct ureg obj = register_input(p, VERT_ATTRIB_POS);
                  struct ureg plane = 
                     register_param3(p, STATE_TEXGEN, i,
                                     STATE_TEXGEN_OBJECT_S + j);
@@ -1348,7 +1345,7 @@ static void build_texture_transform( struct tnl_program *p )
            }
 
            if (copy_mask) {
-              struct ureg in = register_input(p, BRW_ATTRIB_TEX0+i);
+              struct ureg in = register_input(p, VERT_ATTRIB_TEX0+i);
               emit_op1(p, OPCODE_MOV, out_texgen, copy_mask, in );
            }
         }
@@ -1357,7 +1354,7 @@ static void build_texture_transform( struct tnl_program *p )
            struct ureg texmat[4];
            struct ureg in = (!is_undef(out_texgen) ? 
                              out_texgen : 
-                             register_input(p, BRW_ATTRIB_TEX0+i));
+                             register_input(p, VERT_ATTRIB_TEX0+i));
            if (PREFER_DP4) {
               register_matrix_param6( p, STATE_MATRIX, STATE_TEXTURE, i, 
                                       0, 3, STATE_MATRIX, texmat );
@@ -1373,7 +1370,7 @@ static void build_texture_transform( struct tnl_program *p )
         release_temps(p);
       } 
       else {
-        emit_passthrough(p, BRW_ATTRIB_TEX0+i, VERT_RESULT_TEX0+i);
+        emit_passthrough(p, VERT_ATTRIB_TEX0+i, VERT_RESULT_TEX0+i);
       }
    }
 }
@@ -1425,10 +1422,10 @@ static void build_tnl_program( struct tnl_program *p )
         build_lighting(p);
       else {
         if (p->state->fragprog_inputs_read & FRAG_BIT_COL0)
-           emit_passthrough(p, BRW_ATTRIB_COLOR0, VERT_RESULT_COL0);
+           emit_passthrough(p, VERT_ATTRIB_COLOR0, VERT_RESULT_COL0);
 
         if (p->state->fragprog_inputs_read & FRAG_BIT_COL1)
-           emit_passthrough(p, BRW_ATTRIB_COLOR1, VERT_RESULT_COL1);
+           emit_passthrough(p, VERT_ATTRIB_COLOR1, VERT_RESULT_COL1);
       }
    }