summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/a6xx
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2019-05-16 21:04:29 -0700
committerRob Clark <[email protected]>2019-05-20 09:10:12 -0700
commit9f61aa3f7534ca06b8b59a03249f51492bc80b2c (patch)
treece93f3d74da65e6934f070b8fca3c826686c6fd8 /src/gallium/drivers/freedreno/a6xx
parentabfb31acdb673083296d010dfc6920992369989c (diff)
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 <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/a6xx')
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_program.c2
1 files changed, 2 insertions, 0 deletions
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;