r300: Disable loop unrolling on r500.

It's buggy, and we should just trust GLSL or NIR to do unrolling for us.

Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14096>
This commit is contained in:
Emma Anholt 2021-12-06 21:43:26 -08:00 committed by Marge Bot
parent 495a4cfbc3
commit e68a9b0339
3 changed files with 0 additions and 19 deletions

View file

@ -121,7 +121,6 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c)
/* This transformation needs to be done before any of the IF
* instructions are modified. */
{"transform KILP", 1, 1, rc_transform_KILL, NULL},
{"unroll loops", 1, is_r500, rc_unroll_loops, NULL},
{"transform loops", 1, !is_r500, rc_transform_loops, NULL},
{"emulate branches", 1, !is_r500, rc_emulate_branches, NULL},
{"force alpha to one", 1, alpha2one, rc_local_transform, force_alpha_to_one},

View file

@ -499,22 +499,6 @@ void rc_transform_loops(struct radeon_compiler *c, void *user)
}
}
void rc_unroll_loops(struct radeon_compiler *c, void *user)
{
struct rc_instruction * inst;
struct loop_info loop;
for(inst = c->Program.Instructions.Next;
inst != &c->Program.Instructions; inst = inst->Next) {
if (inst->U.I.Opcode == RC_OPCODE_BGNLOOP) {
if (build_loop_info(c, &loop, inst)) {
try_unroll_loop(c, &loop);
}
}
}
}
void rc_emulate_loops(struct radeon_compiler *c, void *user)
{
struct emulate_loop_state * s = &c->loop_state;

View file

@ -50,8 +50,6 @@ struct emulate_loop_state {
void rc_transform_loops(struct radeon_compiler *c, void *user);
void rc_unroll_loops(struct radeon_compiler * c, void *user);
void rc_emulate_loops(struct radeon_compiler * c, void *user);
#endif /* RADEON_EMULATE_LOOPS_H */