i965: fixes for JMPI
1. the data type of <src1> (JMPI offset) must be D 2. execution size must be 1 3. NoMask 4. instruction compression isn't allowed.
This commit is contained in:
parent
96ef7aae1d
commit
73137997e2
|
@ -484,6 +484,10 @@ struct brw_instruction *brw_JMPI(struct brw_compile *p,
|
|||
{
|
||||
struct brw_instruction *insn = brw_alu2(p, BRW_OPCODE_JMPI, dest, src0, src1);
|
||||
|
||||
insn->header.execution_size = 1;
|
||||
insn->header.compression_control = BRW_COMPRESSION_NONE;
|
||||
insn->header.mask_control = BRW_MASK_DISABLE;
|
||||
|
||||
p->current->header.predicate_control = BRW_PREDICATE_NONE;
|
||||
|
||||
return insn;
|
||||
|
|
|
@ -161,16 +161,16 @@ static void do_flatshade_triangle( struct brw_sf_compile *c )
|
|||
|
||||
brw_push_insn_state(p);
|
||||
|
||||
brw_MUL(p, c->pv, c->pv, brw_imm_ud(nr*2+1));
|
||||
brw_MUL(p, c->pv, c->pv, brw_imm_d(nr*2+1));
|
||||
brw_JMPI(p, ip, ip, c->pv);
|
||||
|
||||
copy_colors(c, c->vert[1], c->vert[0]);
|
||||
copy_colors(c, c->vert[2], c->vert[0]);
|
||||
brw_JMPI(p, ip, ip, brw_imm_ud(nr*4+1));
|
||||
brw_JMPI(p, ip, ip, brw_imm_d(nr*4+1));
|
||||
|
||||
copy_colors(c, c->vert[0], c->vert[1]);
|
||||
copy_colors(c, c->vert[2], c->vert[1]);
|
||||
brw_JMPI(p, ip, ip, brw_imm_ud(nr*2));
|
||||
brw_JMPI(p, ip, ip, brw_imm_d(nr*2));
|
||||
|
||||
copy_colors(c, c->vert[0], c->vert[2]);
|
||||
copy_colors(c, c->vert[1], c->vert[2]);
|
||||
|
@ -195,11 +195,11 @@ static void do_flatshade_line( struct brw_sf_compile *c )
|
|||
|
||||
brw_push_insn_state(p);
|
||||
|
||||
brw_MUL(p, c->pv, c->pv, brw_imm_ud(nr+1));
|
||||
brw_MUL(p, c->pv, c->pv, brw_imm_d(nr+1));
|
||||
brw_JMPI(p, ip, ip, c->pv);
|
||||
copy_colors(c, c->vert[1], c->vert[0]);
|
||||
|
||||
brw_JMPI(p, ip, ip, brw_imm_ud(nr));
|
||||
brw_JMPI(p, ip, ip, brw_imm_d(nr));
|
||||
copy_colors(c, c->vert[0], c->vert[1]);
|
||||
|
||||
brw_pop_insn_state(p);
|
||||
|
@ -218,7 +218,7 @@ static void alloc_regs( struct brw_sf_compile *c )
|
|||
|
||||
/* Values computed by fixed function unit:
|
||||
*/
|
||||
c->pv = retype(brw_vec1_grf(1, 1), BRW_REGISTER_TYPE_UD);
|
||||
c->pv = retype(brw_vec1_grf(1, 1), BRW_REGISTER_TYPE_D);
|
||||
c->det = brw_vec1_grf(1, 2);
|
||||
c->dx0 = brw_vec1_grf(1, 3);
|
||||
c->dx2 = brw_vec1_grf(1, 4);
|
||||
|
@ -678,7 +678,7 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
(1<<_3DPRIM_POLYGON) |
|
||||
(1<<_3DPRIM_RECTLIST) |
|
||||
(1<<_3DPRIM_TRIFAN_NOSTIPPLE)));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_d(0));
|
||||
{
|
||||
saveflag = p->flag_value;
|
||||
brw_push_insn_state(p);
|
||||
|
@ -699,7 +699,7 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
(1<<_3DPRIM_LINESTRIP_CONT) |
|
||||
(1<<_3DPRIM_LINESTRIP_BF) |
|
||||
(1<<_3DPRIM_LINESTRIP_CONT_BF)));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_d(0));
|
||||
{
|
||||
saveflag = p->flag_value;
|
||||
brw_push_insn_state(p);
|
||||
|
@ -712,7 +712,7 @@ void brw_emit_anyprim_setup( struct brw_sf_compile *c )
|
|||
|
||||
brw_set_conditionalmod(p, BRW_CONDITIONAL_Z);
|
||||
brw_AND(p, v1_null_ud, payload_attr, brw_imm_ud(1<<BRW_SPRITE_POINT_ENABLE));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_d(0));
|
||||
{
|
||||
saveflag = p->flag_value;
|
||||
brw_push_insn_state(p);
|
||||
|
|
|
@ -1022,7 +1022,7 @@ static void emit_fb_write( struct brw_wm_compile *c,
|
|||
get_element_ud(brw_vec8_grf(1,0), 6),
|
||||
brw_imm_ud(1<<26));
|
||||
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_w(0));
|
||||
jmp = brw_JMPI(p, ip, ip, brw_imm_d(0));
|
||||
{
|
||||
emit_aa(c, arg1, 2);
|
||||
fire_fb_write(c, 0, nr, target, eot);
|
||||
|
|
Loading…
Reference in New Issue