diff options
author | Marek Olšák <[email protected]> | 2017-08-20 12:41:13 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-08-22 13:33:48 +0200 |
commit | cdaaf6656653822fc04dbf99804888c5cd126e97 (patch) | |
tree | b8c0183261154a4fbfe91bd585ed9c6cec982ceb /src/gallium/drivers/r600 | |
parent | 985e6b5ef91ec8de7ae5e03fcfb978ea6e8993ea (diff) |
gallium: remove TGSI opcode BREAKC
Reviewed-by: Roland Scheidegger <[email protected]>
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600')
-rw-r--r-- | src/gallium/drivers/r600/r600_shader.c | 45 |
1 files changed, 3 insertions, 42 deletions
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index 18d4bc4c600..e06fb52481e 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -8733,45 +8733,6 @@ static int tgsi_endloop(struct r600_shader_ctx *ctx) return 0; } -static int tgsi_loop_breakc(struct r600_shader_ctx *ctx) -{ - int r; - unsigned int fscp; - - for (fscp = ctx->bc->fc_sp; fscp > 0; fscp--) - { - if (FC_LOOP == ctx->bc->fc_stack[fscp - 1].type) - break; - } - if (fscp == 0) { - R600_ERR("BREAKC not inside loop/endloop pair\n"); - return -EINVAL; - } - - if (ctx->bc->chip_class == EVERGREEN && - ctx->bc->family != CHIP_CYPRESS && - ctx->bc->family != CHIP_JUNIPER) { - /* HW bug: ALU_BREAK does not save the active mask correctly */ - r = tgsi_uif(ctx); - if (r) - return r; - - r = r600_bytecode_add_cfinst(ctx->bc, CF_OP_LOOP_BREAK); - if (r) - return r; - fc_set_mid(ctx, fscp - 1); - - return tgsi_endif(ctx); - } else { - r = emit_logic_pred(ctx, ALU_OP2_PRED_SETE_INT, CF_OP_ALU_BREAK); - if (r) - return r; - fc_set_mid(ctx, fscp - 1); - } - - return 0; -} - static int tgsi_loop_brk_cont(struct r600_shader_ctx *ctx) { unsigned int fscp; @@ -9104,7 +9065,7 @@ static const struct r600_shader_tgsi_instruction r600_shader_tgsi_instruction[] [TGSI_OPCODE_MEMBAR] = { ALU_OP0_NOP, tgsi_unsupported}, [113] = { ALU_OP0_NOP, tgsi_unsupported}, [114] = { ALU_OP0_NOP, tgsi_unsupported}, - [TGSI_OPCODE_BREAKC] = { ALU_OP0_NOP, tgsi_loop_breakc}, + [115] = { ALU_OP0_NOP, tgsi_unsupported}, [TGSI_OPCODE_KILL_IF] = { ALU_OP2_KILLGT, tgsi_kill}, /* conditional kill */ [TGSI_OPCODE_END] = { ALU_OP0_NOP, tgsi_end}, /* aka HALT */ [TGSI_OPCODE_DFMA] = { ALU_OP0_NOP, tgsi_unsupported}, @@ -9302,7 +9263,7 @@ static const struct r600_shader_tgsi_instruction eg_shader_tgsi_instruction[] = [TGSI_OPCODE_MEMBAR] = { ALU_OP0_NOP, tgsi_unsupported}, [113] = { ALU_OP0_NOP, tgsi_unsupported}, [114] = { ALU_OP0_NOP, tgsi_unsupported}, - [TGSI_OPCODE_BREAKC] = { ALU_OP0_NOP, tgsi_unsupported}, + [115] = { ALU_OP0_NOP, tgsi_unsupported}, [TGSI_OPCODE_KILL_IF] = { ALU_OP2_KILLGT, tgsi_kill}, /* conditional kill */ [TGSI_OPCODE_END] = { ALU_OP0_NOP, tgsi_end}, /* aka HALT */ /* Refer below for TGSI_OPCODE_DFMA */ @@ -9525,7 +9486,7 @@ static const struct r600_shader_tgsi_instruction cm_shader_tgsi_instruction[] = [TGSI_OPCODE_MEMBAR] = { ALU_OP0_NOP, tgsi_unsupported}, [113] = { ALU_OP0_NOP, tgsi_unsupported}, [114] = { ALU_OP0_NOP, tgsi_unsupported}, - [TGSI_OPCODE_BREAKC] = { ALU_OP0_NOP, tgsi_unsupported}, + [115] = { ALU_OP0_NOP, tgsi_unsupported}, [TGSI_OPCODE_KILL_IF] = { ALU_OP2_KILLGT, tgsi_kill}, /* conditional kill */ [TGSI_OPCODE_END] = { ALU_OP0_NOP, tgsi_end}, /* aka HALT */ /* Refer below for TGSI_OPCODE_DFMA */ |