summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris/iris_draw.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-10-19 01:31:56 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:09 -0800
commitb3a40c27a24ccf10d1b91d8294b6e9f01f5fd2b9 (patch)
treef923174bea4da94f2f36df98c76d429afd13d998 /src/gallium/drivers/iris/iris_draw.c
parentf8796079dab4a3d6fb9ea034b93fd38de53fbe1f (diff)
iris: don't let render/compute contexts stomp each other's dirty bits
only clear what you process
Diffstat (limited to 'src/gallium/drivers/iris/iris_draw.c')
-rw-r--r--src/gallium/drivers/iris/iris_draw.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/gallium/drivers/iris/iris_draw.c b/src/gallium/drivers/iris/iris_draw.c
index c2216a22bed..f9b8db7b64e 100644
--- a/src/gallium/drivers/iris/iris_draw.c
+++ b/src/gallium/drivers/iris/iris_draw.c
@@ -89,7 +89,7 @@ iris_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
ice->vtbl.update_surface_base_address(batch, &ice->state.binder);
ice->vtbl.upload_render_state(ice, batch, info);
- ice->state.dirty = 0ull;
+ ice->state.dirty &= ~IRIS_ALL_DIRTY_FOR_RENDER;
iris_postdraw_update_resolve_tracking(ice, batch);
}
@@ -163,8 +163,7 @@ iris_launch_grid(struct pipe_context *ctx, const struct pipe_grid_info *grid)
ice->vtbl.update_surface_base_address(batch, &ice->state.binder);
ice->vtbl.upload_compute_state(ice, batch, grid);
- // XXX: this is wrong. we need separate dirty tracking for compute/render
- ice->state.dirty = 0ull;
+ ice->state.dirty &= ~IRIS_ALL_DIRTY_FOR_COMPUTE;
// XXX: postdraw resolve tracking
}