summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris/iris_blit.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-11-21 01:03:48 -0800
committerKenneth Graunke <[email protected]>2019-02-21 10:26:10 -0800
commit415ede346decfcc21b0639052dc01c4d41060385 (patch)
treea178354d178069d0e607c6f0df914c81bf3d0ce3 /src/gallium/drivers/iris/iris_blit.c
parentc8579e708ec4344590352aa5bb77fe4e0bbc5144 (diff)
iris: Flush for history at various moments
When we blit, transfer, or copy_resource to a buffer, we need to flush to ensure any stale data for that buffer is invalidated in the caches. bind_history will inform us which caches need to be flushed. Also, for any push constant buffers, we need to flag those dirty so that we re-emit 3DSTATE_CONSTANT_*, causing the data to be re-pushed.
Diffstat (limited to 'src/gallium/drivers/iris/iris_blit.c')
-rw-r--r--src/gallium/drivers/iris/iris_blit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_blit.c b/src/gallium/drivers/iris/iris_blit.c
index 6e6f4456072..c50e7958d24 100644
--- a/src/gallium/drivers/iris/iris_blit.c
+++ b/src/gallium/drivers/iris/iris_blit.c
@@ -378,6 +378,9 @@ iris_blit(struct pipe_context *ctx, const struct pipe_blit_info *info)
}
blorp_batch_finish(&blorp_batch);
+
+ iris_flush_and_dirty_for_history(ice, batch, (struct iris_resource *)
+ info->dst.resource);
}
/**
@@ -432,6 +435,8 @@ iris_resource_copy_region(struct pipe_context *ctx,
}
blorp_batch_finish(&blorp_batch);
+
+ iris_flush_and_dirty_for_history(ice, batch, (struct iris_resource *) dst);
}
void