From 32ee2e4c274131d97d78f9c193087cd7104dab92 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 11 Dec 2018 22:46:40 -0800 Subject: [PATCH] iris: always pin the binder...in the compute context, too. not sure why this hasn't tripped things up --- src/gallium/drivers/iris/iris_state.c | 7 +++++++ 1 file changed, 7 insertions(+) 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); -- 2.30.2