diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2012-12-20 21:20:55 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2012-12-21 19:51:43 +0000 |
commit | ad16eb963a0eefb2be1b75a60e23482721d969a9 (patch) | |
tree | 1227a8ec32cbe2291fb2f9c05b1fe09faea898f4 | |
parent | e3e346a3cd86e2fe7517a4c67c9c27286374fece (diff) |
r600g: Add ar_chanindirect-wip-5
-rw-r--r-- | src/gallium/drivers/r600/r600_asm.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_asm.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_shader.c | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c index 59f0693df34..2660bb90ab9 100644 --- a/src/gallium/drivers/r600/r600_asm.c +++ b/src/gallium/drivers/r600/r600_asm.c @@ -1422,6 +1422,7 @@ static int load_ar_r6xx(struct r600_bytecode *bc) memset(&alu, 0, sizeof(alu)); alu.inst = V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_GPR_INT; alu.src[0].sel = bc->ar_reg; + alu.src[0].chan = bc->ar_chan; alu.last = 1; alu.index_mode = INDEX_MODE_LOOP; r = r600_bytecode_add_alu(bc, &alu); @@ -1452,6 +1453,7 @@ static int load_ar(struct r600_bytecode *bc) memset(&alu, 0, sizeof(alu)); alu.inst = BC_INST(bc, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_INT); alu.src[0].sel = bc->ar_reg; + alu.src[0].chan = bc->ar_chan; alu.last = 1; r = r600_bytecode_add_alu(bc, &alu); if (r) diff --git a/src/gallium/drivers/r600/r600_asm.h b/src/gallium/drivers/r600/r600_asm.h index 5727a7c421f..5ec6ccfed61 100644 --- a/src/gallium/drivers/r600/r600_asm.h +++ b/src/gallium/drivers/r600/r600_asm.h @@ -213,6 +213,7 @@ struct r600_bytecode { struct r600_cf_callstack callstack[SQ_MAX_CALL_DEPTH]; unsigned ar_loaded; unsigned ar_reg; + unsigned ar_chan; unsigned ar_handling; unsigned r6xx_nop_after_rel_dst; }; diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index 935fe5df876..6cb0f6f2e52 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -356,6 +356,7 @@ static unsigned r600_alu_from_byte_stream(struct r600_shader_ctx *ctx, if (alu.inst == CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_INT)) { ctx->bc->ar_reg = alu.src[0].sel; + ctx->bc->ar_chan = alu.src[0].chan; ctx->bc->ar_loaded = 0; return bytes_read; } |