summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_shader.c
diff options
context:
space:
mode:
authorVincent Lejeune <[email protected]>2012-08-01 22:52:52 +0200
committerTom Stellard <[email protected]>2012-08-15 21:07:13 +0000
commitda676eab93e7dad30b574b4eb4cffd4df952e819 (patch)
treead31d2ee033f083bea0a4a382f09c7fe024f1263 /src/gallium/drivers/r600/r600_shader.c
parentcf76edd300b3e58a906d07404e7d7533a6d54a41 (diff)
r600g: Add support for predicates
Signed-off-by: Tom Stellard <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_shader.c')
-rw-r--r--src/gallium/drivers/r600/r600_shader.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index ed95f4cdff3..dfaff832e76 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -310,7 +310,7 @@ static unsigned r600_alu_from_byte_stream(struct r600_shader_ctx *ctx,
alu.inst = inst0 | (inst1 << 8);
alu.last = bytes[bytes_read++];
alu.is_op3 = bytes[bytes_read++];
- alu.predicate = bytes[bytes_read++];
+ alu.pred_sel = bytes[bytes_read++];
alu.bank_swizzle = bytes[bytes_read++];
alu.bank_swizzle_force = bytes[bytes_read++];
alu.omod = bytes[bytes_read++];
@@ -330,7 +330,8 @@ static void llvm_if(struct r600_shader_ctx *ctx, struct r600_bytecode_alu * alu,
unsigned pred_inst)
{
alu->inst = pred_inst;
- alu->predicate = 1;
+ alu->execute_mask = 1;
+ alu->update_pred = 1;
alu->dst.write = 0;
alu->src[1].sel = V_SQ_ALU_SRC_0;
alu->src[1].chan = 0;
@@ -4854,7 +4855,8 @@ static int emit_logic_pred(struct r600_shader_ctx *ctx, int opcode)
memset(&alu, 0, sizeof(struct r600_bytecode_alu));
alu.inst = opcode;
- alu.predicate = 1;
+ alu.execute_mask = 1;
+ alu.update_pred = 1;
alu.dst.sel = ctx->temp_reg;
alu.dst.write = 1;