mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 09:00:10 +01:00
brw: Add scoreboard test for edge case involving baked dependency
This is disable because it is adding a `sync.nop` instead of baking together both "@3 $0.dst". Reviewed-by: Francisco Jerez <currojerez@riseup.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36096>
This commit is contained in:
parent
a59e3c6a8b
commit
1e18a2d1a8
1 changed files with 62 additions and 0 deletions
|
|
@ -1143,3 +1143,65 @@ TEST_F(scoreboard_test, scalar_register_mov_grf_is_not_in_scalar_pipe)
|
|||
|
||||
EXPECT_SHADERS_MATCH(bld, exp);
|
||||
}
|
||||
|
||||
TEST_F(scoreboard_test, DISABLED_baked_dependency_with_inferred_pipe_combination)
|
||||
{
|
||||
brw_builder bld = make_shader();
|
||||
brw_builder exp = make_shader();
|
||||
|
||||
brw_reg *g = vgrf_array(bld, exp, BRW_TYPE_F, 8);
|
||||
brw_reg x = vgrf(bld, exp, BRW_TYPE_F);
|
||||
|
||||
bld.MOV(g[1], brw_imm_f(1.0f));
|
||||
bld.MOV(g[2], brw_imm_f(2.0f));
|
||||
bld.MOV(g[5], brw_imm_f(5.0f));
|
||||
|
||||
bld.IF();
|
||||
emit_SEND(bld, x, g[1], g[2]);
|
||||
bld.ELSE();
|
||||
emit_SEND(bld, x, g[1], g[2]);
|
||||
bld.ENDIF();
|
||||
|
||||
bld.MAD(g[4], g[5], g[1], x);
|
||||
|
||||
EXPECT_PROGRESS(brw_lower_scoreboard, bld);
|
||||
|
||||
exp.MOV(g[1], brw_imm_f(1.0f));
|
||||
exp.MOV(g[2], brw_imm_f(2.0f));
|
||||
exp.MOV(g[5], brw_imm_f(5.0f));
|
||||
|
||||
exp.IF();
|
||||
emit_SEND(exp, x, g[1], g[2])->sched = SWSB("@3 $0");
|
||||
exp.ELSE();
|
||||
emit_SEND(exp, x, g[1], g[2])->sched = SWSB("@3 $0");
|
||||
exp.ENDIF();
|
||||
|
||||
exp.MAD(g[4], g[5], g[1], x)->sched = SWSB("@3 $0.dst");
|
||||
|
||||
EXPECT_SHADERS_MATCH(bld, exp);
|
||||
}
|
||||
|
||||
TEST_F(scoreboard_test, DISABLED_math_inv_with_mul_dependency)
|
||||
{
|
||||
brw_builder bld = make_shader();
|
||||
brw_builder exp = make_shader();
|
||||
|
||||
brw_reg *g = vgrf_array(bld, exp, BRW_TYPE_F, 8);
|
||||
brw_reg x = vgrf(bld, exp, BRW_TYPE_F);
|
||||
|
||||
bld.MOV(g[1], brw_imm_f(1.0f));
|
||||
bld.MOV(g[2], brw_imm_f(2.0f));
|
||||
|
||||
bld.emit(SHADER_OPCODE_RCP, x, g[1]);
|
||||
bld.MUL(g[1], g[2], x);
|
||||
|
||||
EXPECT_PROGRESS(brw_lower_scoreboard, bld);
|
||||
|
||||
exp.MOV(g[1], brw_imm_f(1.0f));
|
||||
exp.MOV(g[2], brw_imm_f(2.0f));
|
||||
|
||||
exp.emit(SHADER_OPCODE_RCP, x, g[1])->sched = SWSB("@2 $0");
|
||||
exp.MUL(g[1], g[2], x)->sched = SWSB("@1 $0.dst");
|
||||
|
||||
EXPECT_SHADERS_MATCH(bld, exp);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue