r600g; add uses waterfall to asm cf for r6xx.
On r6xx if an MOVA instruction is emitted we should set this bit.
This commit is contained in:
parent
8861727c91
commit
c5edfcc410
|
@ -696,6 +696,7 @@ static int r600_bc_cf_build(struct r600_bc *bc, struct r600_bc_cf *cf)
|
||||||
|
|
||||||
bc->bytecode[id++] = S_SQ_CF_ALU_WORD1_CF_INST(cf->inst >> 3) |
|
bc->bytecode[id++] = S_SQ_CF_ALU_WORD1_CF_INST(cf->inst >> 3) |
|
||||||
S_SQ_CF_ALU_WORD1_BARRIER(1) |
|
S_SQ_CF_ALU_WORD1_BARRIER(1) |
|
||||||
|
S_SQ_CF_ALU_WORD1_USES_WATERFALL(cf->r6xx_uses_waterfall) |
|
||||||
S_SQ_CF_ALU_WORD1_COUNT((cf->ndw / 2) - 1);
|
S_SQ_CF_ALU_WORD1_COUNT((cf->ndw / 2) - 1);
|
||||||
break;
|
break;
|
||||||
case V_SQ_CF_WORD1_SQ_CF_INST_TEX:
|
case V_SQ_CF_WORD1_SQ_CF_INST_TEX:
|
||||||
|
|
|
@ -127,6 +127,7 @@ struct r600_bc_cf {
|
||||||
unsigned pop_count;
|
unsigned pop_count;
|
||||||
unsigned cf_addr; /* control flow addr */
|
unsigned cf_addr; /* control flow addr */
|
||||||
unsigned kcache0_mode;
|
unsigned kcache0_mode;
|
||||||
|
unsigned r6xx_uses_waterfall;
|
||||||
struct list_head alu;
|
struct list_head alu;
|
||||||
struct list_head tex;
|
struct list_head tex;
|
||||||
struct list_head vtx;
|
struct list_head vtx;
|
||||||
|
|
|
@ -2313,6 +2313,7 @@ static int tgsi_arl(struct r600_shader_ctx *ctx)
|
||||||
r = r600_bc_add_alu_type(ctx->bc, &alu, CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU));
|
r = r600_bc_add_alu_type(ctx->bc, &alu, CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU));
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
ctx->bc->cf_last->r6xx_uses_waterfall = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue