mesa: replace old prog_instruction::Sampler field with Aux field
authorBrian Paul <brianp@vmware.com>
Tue, 24 Feb 2009 00:50:55 +0000 (17:50 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 27 Feb 2009 01:48:35 +0000 (18:48 -0700)
The i965 driver needs an extra instruction field for color output information.
It was using the Sampler field for this.  Use the Aux field instead.  This
will probaby be revisited at some point...

src/mesa/drivers/dri/i965/brw_wm_fp.c
src/mesa/drivers/dri/i965/brw_wm_glsl.c
src/mesa/drivers/dri/i965/brw_wm_pass0.c
src/mesa/shader/prog_instruction.h

index b2d67bd8670c24f34dcb2e1055ad7ddb171bedbf..fcd833b9bc2f6463751151b62d8cd1f84c1119ec 100644 (file)
@@ -869,8 +869,7 @@ static void emit_fb_write( struct brw_wm_compile *c )
    struct prog_instruction *inst, *last_inst;
    struct brw_context *brw = c->func.brw;
 
-   /* inst->Sampler is not used by backend, 
-      use it for fb write target and eot */
+   /* The inst->Aux field is used for FB write target and the EOT marker */
 
    if (brw->state.nr_draw_regions > 1) {
       for (i = 0 ; i < brw->state.nr_draw_regions; i++) {
@@ -878,15 +877,15 @@ static void emit_fb_write( struct brw_wm_compile *c )
          last_inst = inst = emit_op(c,
                                     WM_FB_WRITE, dst_mask(dst_undef(),0), 0,
                                     outcolor, payload_r0_depth, outdepth);
-         inst->Sampler = (i<<1);
+         inst->Aux = (i<<1);
          if (c->fp_fragcolor_emitted) {
             outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_COLR);
             last_inst = inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(),0),
                                        0, outcolor, payload_r0_depth, outdepth);
-            inst->Sampler = (i<<1);
+            inst->Aux = (i<<1);
          }
       }
-      last_inst->Sampler |= 1; //eot
+      last_inst->Aux |= 1; //eot
    }
    else {
       /* if gl_FragData[0] is written, use it, else use gl_FragColor */
@@ -897,7 +896,7 @@ static void emit_fb_write( struct brw_wm_compile *c )
 
       inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(),0),
                      0, outcolor, payload_r0_depth, outdepth);
-      inst->Sampler = 1|(0<<1);
+      inst->Aux = 1|(0<<1);
    }
 }
 
index 121cdc040eac97796b6b9f400b910e8188f47f0c..8e404bcdc378247df56f14019c46e39bce87b4d8 100644 (file)
@@ -426,8 +426,8 @@ static void emit_fb_write(struct brw_wm_compile *c,
        nr += 2;
     }
 
-    target = inst->Sampler >> 1;
-    eot = inst->Sampler & 1;
+    target = inst->Aux >> 1;
+    eot = inst->Aux & 1;
     fire_fb_write(c, 0, nr, target, eot);
 }
 
index 783545de56b968230538124a1e5ae2b12e0b244b..2debd0678a58cbec7c6af2f44dd30d999ff0c211 100644 (file)
@@ -350,8 +350,8 @@ translate_insn(struct brw_wm_compile *c,
    out->tex_unit = inst->TexSrcUnit;
    out->tex_idx = inst->TexSrcTarget;
    out->tex_shadow = inst->TexShadow;
-   out->eot = inst->Sampler & 1;
-   out->target = inst->Sampler>>1;
+   out->eot = inst->Aux & 1;
+   out->target = inst->Aux >> 1;
 
    /* Args:
     */
index e3bb7ac01db558d79908b7c59141923b24146b0d..3808644550276cda697880f4af4d56f79aa1d101 100644 (file)
@@ -410,20 +410,15 @@ struct prog_instruction
     */
    GLint BranchTarget;
 
-#if 01 /* XXX just use this for i965 driver for now! */
-   /**
-    * For TEX instructions in shaders, the sampler to use for the
-    * texture lookup.
-    */
-   GLint Sampler;
-#endif
-
    /** for debugging purposes */
    const char *Comment;
 
    /** Arbitrary data.  Used for OPCODE_PRINT and some drivers */
    void *Data;
 
+   /** for driver use (try to remove someday) */
+   GLint Aux;
+
    /* XXX obsolete - remove someday */
 #if FEATURE_MESA_program_debug
    GLshort StringPos;