From: Rob Clark Date: Fri, 17 May 2019 04:04:29 +0000 (-0700) Subject: freedreno/a6xx: WFI in program stateobj too X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9f61aa3f7534ca06b8b59a03249f51492bc80b2c;p=mesa.git 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 --- 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;