diff options
author | Kenneth Graunke <[email protected]> | 2018-11-25 19:03:43 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-02-21 10:26:10 -0800 |
commit | 0ded23a552401eabc4149a74ade4561cf6b47726 (patch) | |
tree | 561195790146b1e77e65b0a28807c82e5a38aec8 /src/gallium/drivers/iris/iris_resolve.c | |
parent | 69e97670bcaa7efe801429251a678813f096f5ff (diff) |
iris: actually flush for storage images
Diffstat (limited to 'src/gallium/drivers/iris/iris_resolve.c')
-rw-r--r-- | src/gallium/drivers/iris/iris_resolve.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_resolve.c b/src/gallium/drivers/iris/iris_resolve.c index 06f44c022b9..11967016663 100644 --- a/src/gallium/drivers/iris/iris_resolve.c +++ b/src/gallium/drivers/iris/iris_resolve.c @@ -51,6 +51,21 @@ resolve_sampler_views(struct iris_batch *batch, } } +static void +resolve_image_views(struct iris_batch *batch, + struct iris_shader_state *shs) +{ + for (int i = 0; i < shs->num_images; i++) { + struct pipe_resource *res = shs->image[i].res; + if (!res) + continue; + + // XXX: aux tracking + iris_cache_flush_for_read(batch, iris_resource_bo(res)); + } +} + + /** * \brief Resolve buffers before drawing. * @@ -64,6 +79,7 @@ iris_predraw_resolve_inputs(struct iris_context *ice, for (gl_shader_stage stage = 0; stage < MESA_SHADER_STAGES; stage++) { struct iris_shader_state *shs = &ice->state.shaders[stage]; resolve_sampler_views(batch, shs); + resolve_image_views(batch, shs); } // XXX: storage images |