aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-12-11 22:46:40 -0800
committerKenneth Graunke <[email protected]>2019-02-21 10:26:11 -0800
commit32ee2e4c274131d97d78f9c193087cd7104dab92 (patch)
treee306d86f5f532f6d7438b9c38a0e52eb5c881b20
parentfbfe07c4f373447881fb9da5ca4e060053f7b95c (diff)
iris: always pin the binder...in the compute context, too.
not sure why this hasn't tripped things up
-rw-r--r--src/gallium/drivers/iris/iris_state.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index e08f90973f7..e4e42f50d82 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -4663,6 +4663,13 @@ iris_upload_compute_state(struct iris_context *ice,
struct brw_stage_prog_data *prog_data = shader->prog_data;
struct brw_cs_prog_data *cs_prog_data = (void *) prog_data;
+ /* Always pin the binder. If we're emitting new binding table pointers,
+ * we need it. If not, we're probably inheriting old tables via the
+ * context, and need it anyway. Since true zero-bindings cases are
+ * practically non-existent, just pin it and avoid last_res tracking.
+ */
+ iris_use_pinned_bo(batch, ice->state.binder.bo, false);
+
if ((dirty & IRIS_DIRTY_CONSTANTS_CS) && shs->cbuf0_needs_upload)
upload_uniforms(ice, MESA_SHADER_COMPUTE);