i965: use macros to get/set prog_instruction::Aux field
This makes things a bit easier to remember/understand.
This commit is contained in:
@@ -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 );
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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:
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user