From 9f61aa3f7534ca06b8b59a03249f51492bc80b2c Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Thu, 16 May 2019 21:04:29 -0700 Subject: [PATCH] freedreno/a6xx: WFI in program stateobj too This "fixes" hangs seen w/ various android games. I think a similar issue to with constant state, we need to avoid CP_LOAD_STATE until previous draw completes. It isn't entirely clear why blob doesn't need to do this, but it might have a different way to accomplish the same thing. Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/a6xx/fd6_program.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.c b/src/gallium/drivers/freedreno/a6xx/fd6_program.c index 3603d800f04..b90ad2e06e5 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_program.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.c @@ -326,6 +326,8 @@ setup_stateobj(struct fd_ringbuffer *ring, struct fd6_program_state *state, uint8_t psize_loc = ~0; int i, j; + OUT_WFI5(ring); + setup_stages(state, s, binning_pass); bool sample_shading = s[FS].v->per_samp | key->sample_shading;