summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-03-23 15:43:50 -0700
committerEric Anholt <[email protected]>2018-03-26 17:46:19 -0700
commit262208eb3c2c53a1fd807bc76b12088f6ce2c56d (patch)
tree695d0655b3bda865f9c37a4c731f6860b7508365 /src
parentef2cf9cc3c1a4bc96fcc46eb623768a400c3d68d (diff)
broadcom/vc5: Disable TF on V3D 4.x when drawing with queries disabled.
On 3.x, we just don't flag the primitive as needing TF, but those primitive bits are now allocated to the new primitive types. Now we need to actually update the enable flag at draw time.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/vc5/vc5_emit.c7
-rw-r--r--src/gallium/drivers/vc5/vc5_query.c1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc5/vc5_emit.c b/src/gallium/drivers/vc5/vc5_emit.c
index a98fd037d08..d5bf2824d29 100644
--- a/src/gallium/drivers/vc5/vc5_emit.c
+++ b/src/gallium/drivers/vc5/vc5_emit.c
@@ -604,6 +604,13 @@ v3dX(emit_state)(struct pipe_context *pctx)
for (int i = 0; i < vc5->prog.bind_vs->num_tf_specs; i++) {
cl_emit_prepacked(&job->bcl, &tf_specs[i]);
}
+ } else if (job->tf_enabled) {
+#if V3D_VERSION >= 40
+ cl_emit(&job->bcl, TRANSFORM_FEEDBACK_SPECS, tfe) {
+ tfe.enable = false;
+ };
+ job->tf_enabled = false;
+#endif /* V3D_VERSION >= 40 */
}
}
diff --git a/src/gallium/drivers/vc5/vc5_query.c b/src/gallium/drivers/vc5/vc5_query.c
index 5ec9be2e356..9aa80cf536a 100644
--- a/src/gallium/drivers/vc5/vc5_query.c
+++ b/src/gallium/drivers/vc5/vc5_query.c
@@ -164,6 +164,7 @@ vc5_set_active_query_state(struct pipe_context *pctx, boolean enable)
vc5->active_queries = enable;
vc5->dirty |= VC5_DIRTY_OQ;
+ vc5->dirty |= VC5_DIRTY_STREAMOUT;
}
void