summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc5/vc5_emit.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-03-23 15:28:40 -0700
committerEric Anholt <[email protected]>2018-03-26 17:46:19 -0700
commitef2cf9cc3c1a4bc96fcc46eb623768a400c3d68d (patch)
tree5607fdfd0b1872244adba3c4effb0a3e2cdf7ff7 /src/gallium/drivers/vc5/vc5_emit.c
parent1fa820cef861b0f2efd001cfb3c4adecf2fa549b (diff)
broadcom/vc5: Disable transform feedback on V3D 4.x at the end of the job.
The next job from this client will turn it back on unless TF gets disabled, but we don't want the state to leak from this client to another (which causes GPU hangs).
Diffstat (limited to 'src/gallium/drivers/vc5/vc5_emit.c')
-rw-r--r--src/gallium/drivers/vc5/vc5_emit.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/drivers/vc5/vc5_emit.c b/src/gallium/drivers/vc5/vc5_emit.c
index 061d6e7c9d9..a98fd037d08 100644
--- a/src/gallium/drivers/vc5/vc5_emit.c
+++ b/src/gallium/drivers/vc5/vc5_emit.c
@@ -585,12 +585,13 @@ v3dX(emit_state)(struct pipe_context *pctx)
vc5->prog.bind_vs->tf_specs);
#if V3D_VERSION >= 40
+ job->tf_enabled = (vc5->prog.bind_vs->num_tf_specs != 0 &&
+ vc5->active_queries);
+
cl_emit(&job->bcl, TRANSFORM_FEEDBACK_SPECS, tfe) {
tfe.number_of_16_bit_output_data_specs_following =
vc5->prog.bind_vs->num_tf_specs;
- tfe.enable =
- (vc5->prog.bind_vs->num_tf_specs != 0 &&
- vc5->active_queries);
+ tfe.enable = job->tf_enabled;
};
#else /* V3D_VERSION < 40 */
cl_emit(&job->bcl, TRANSFORM_FEEDBACK_ENABLE, tfe) {