summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-02-23 17:50:55 -0700
committerBrian Paul <brianp@vmware.com>2009-02-26 18:48:35 -0700
commit8ae7e7749b708fc5a46180d3de2503ba7e2ab1f3 (patch)
tree5713c749a0e3353ea2479ba60142fc7b1b3c006f
parent9b78d9f65178648b1888f98153a2f738a281cb84 (diff)
mesa: replace old prog_instruction::Sampler field with Aux field
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...
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_fp.c11
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_glsl.c4
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_pass0.c4
-rw-r--r--src/mesa/shader/prog_instruction.h11
4 files changed, 12 insertions, 18 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_fp.c b/src/mesa/drivers/dri/i965/brw_wm_fp.c
index b2d67bd867..fcd833b9bc 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_fp.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_fp.c
@@ -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);
}
}
diff --git a/src/mesa/drivers/dri/i965/brw_wm_glsl.c b/src/mesa/drivers/dri/i965/brw_wm_glsl.c
index 121cdc040e..8e404bcdc3 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_glsl.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_glsl.c
@@ -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);
}
diff --git a/src/mesa/drivers/dri/i965/brw_wm_pass0.c b/src/mesa/drivers/dri/i965/brw_wm_pass0.c
index 783545de56..2debd0678a 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_pass0.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_pass0.c
@@ -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:
*/
diff --git a/src/mesa/shader/prog_instruction.h b/src/mesa/shader/prog_instruction.h
index e3bb7ac01d..3808644550 100644
--- a/src/mesa/shader/prog_instruction.h
+++ b/src/mesa/shader/prog_instruction.h
@@ -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;