aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-12-09 19:08:40 -0800
committerKenneth Graunke <[email protected]>2019-02-21 10:26:12 -0800
commit45f4dab62bd7c4daf9d9fc357f4ed1275445f13a (patch)
tree4c8f644d6a59510f035f44e8a2c5c5995572ac68 /src/gallium
parentecc897b8ad5bfcecf11511b5b3970e4434900f26 (diff)
iris: Resolves for compute
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/iris/iris_draw.c10
1 files changed, 8 insertions, 2 deletions
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);