From: Kenneth Graunke Date: Mon, 10 Dec 2018 03:08:40 +0000 (-0800) Subject: iris: Resolves for compute X-Git-Tag: android-x86-9.0-r1~8925 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=45f4dab62bd7c4daf9d9fc357f4ed1275445f13a;p=android-x86%2Fexternal-mesa.git iris: Resolves for compute --- diff --git a/src/gallium/drivers/iris/iris_draw.c b/src/gallium/drivers/iris/iris_draw.c index 4d2ea3a03e8..12637fd41f3 100644 --- a/src/gallium/drivers/iris/iris_draw.c +++ b/src/gallium/drivers/iris/iris_draw.c @@ -177,13 +177,19 @@ iris_launch_grid(struct pipe_context *ctx, const struct pipe_grid_info *grid) if (unlikely(INTEL_DEBUG & DEBUG_REEMIT)) ice->state.dirty |= IRIS_ALL_DIRTY_FOR_COMPUTE; + /* We can't do resolves on the compute engine, so awkwardly, we have to + * do them on the render batch... + */ + for (gl_shader_stage stage = 0; stage < MESA_SHADER_STAGES; stage++) { + iris_predraw_resolve_inputs(ice, &ice->batches[IRIS_BATCH_RENDER], + &ice->state.shaders[stage], NULL, false); + } + iris_batch_maybe_flush(batch, 1500); //if (dirty & IRIS_DIRTY_UNCOMPILED_CS) iris_update_compiled_compute_shader(ice); - // XXX: predraw resolves / cache flushing - iris_update_grid_size_resource(ice, grid); iris_binder_reserve_compute(ice);