i965: use macros to get/set prog_instruction::Aux field

This makes things a bit easier to remember/understand.
This commit is contained in:
Brian Paul 2009-10-29 14:29:55 -06:00
parent a0959bcee5
commit a8d233e509
4 changed files with 14 additions and 8 deletions

View file

@ -271,6 +271,12 @@ struct brw_wm_compile {
};
/** Bits for prog_instruction::Aux field */
#define INST_AUX_EOT 0x1
#define INST_AUX_TARGET(T) (T << 1)
#define INST_AUX_GET_TARGET(AUX) ((AUX) >> 1)
GLuint brw_wm_nr_args( GLuint opcode );
GLuint brw_wm_is_scalar_result( GLuint opcode );

View file

@ -973,15 +973,15 @@ static void emit_fb_write( struct brw_wm_compile *c )
outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_DATA0 + i);
last_inst = inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(), 0),
0, outcolor, payload_r0_depth, outdepth);
inst->Aux = (i<<1);
inst->Aux = INST_AUX_TARGET(i);
if (c->fp_fragcolor_emitted) {
outcolor = src_reg(PROGRAM_OUTPUT, FRAG_RESULT_COLOR);
last_inst = inst = emit_op(c, WM_FB_WRITE, dst_mask(dst_undef(), 0),
0, outcolor, payload_r0_depth, outdepth);
inst->Aux = (i<<1);
inst->Aux = INST_AUX_TARGET(i);
}
}
last_inst->Aux |= 1; //eot
last_inst->Aux |= INST_AUX_EOT;
}
else {
/* if gl_FragData[0] is written, use it, else use gl_FragColor */
@ -992,7 +992,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->Aux = 1|(0<<1);
inst->Aux = INST_AUX_EOT | INST_AUX_TARGET(0);
}
}

View file

@ -841,8 +841,8 @@ static void emit_fb_write(struct brw_wm_compile *c,
nr += 2;
}
target = inst->Aux >> 1;
eot = inst->Aux & 1;
target = INST_AUX_GET_TARGET(inst->Aux);
eot = inst->Aux & INST_AUX_EOT;
fire_fb_write(c, 0, nr, target, eot);
}

View file

@ -322,8 +322,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->Aux & 1;
out->target = inst->Aux >> 1;
out->eot = inst->Aux & INST_AUX_EOT;
out->target = INST_AUX_GET_TARGET(inst->Aux);
/* Args:
*/