v3d: Add support for shader_image_load_store.
[mesa.git] / src / gallium / drivers / v3d / v3dx_draw.c
index 7f111bbe75f4972381c8828546af99d7e410de95..7ec687031d661637610c630f7b7cfb23982d71f8 100644 (file)
@@ -148,6 +148,13 @@ v3d_predraw_check_stage_inputs(struct pipe_context *pctx,
                 if (cb->buffer)
                         v3d_flush_jobs_writing_resource(v3d, cb->buffer);
         }
+
+        /* Flush writes to our image views */
+        foreach_bit(i, v3d->shaderimg[s].enabled_mask) {
+                struct v3d_image_view *view = &v3d->shaderimg[s].si[i];
+
+                v3d_flush_jobs_writing_resource(v3d, view->base.resource);
+        }
 }
 
 static void
@@ -487,6 +494,12 @@ v3d_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info)
                                                    v3d->ssbo[s].sb[i].buffer);
                         job->tmu_dirty_rcl = true;
                 }
+
+                foreach_bit(i, v3d->shaderimg[s].enabled_mask) {
+                        v3d_job_add_write_resource(job,
+                                                   v3d->shaderimg[s].si[i].base.resource);
+                        job->tmu_dirty_rcl = true;
+                }
         }
 
         /* Get space to emit our draw call into the BCL, using a branch to