iris: do flush for buffers still
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 11 Dec 2018 07:13:23 +0000 (23:13 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:12 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_resolve.c

index b1d0856d8e867a622fff207764abe7d67fc67ed1..e11f07303840bf56120008e54efa0be3e7f09a30 100644 (file)
@@ -95,21 +95,20 @@ resolve_sampler_views(struct iris_context *ice,
       struct iris_sampler_view *isv = shs->textures[i];
       struct iris_resource *res = (void *) isv->base.texture;
 
-      if (res->base.target == PIPE_BUFFER)
-         continue;
+      if (res->base.target != PIPE_BUFFER) {
+         if (consider_framebuffer) {
+            disable_rb_aux_buffer(ice, draw_aux_buffer_disabled,
+                                  res, isv->view.base_level, isv->view.levels,
+                                  "for sampling");
+         }
 
-      if (consider_framebuffer) {
-         disable_rb_aux_buffer(ice, draw_aux_buffer_disabled,
-                               res, isv->view.base_level, isv->view.levels,
-                               "for sampling");
+         iris_resource_prepare_texture(ice, batch, res, isv->view.format,
+                                       isv->view.base_level, isv->view.levels,
+                                       isv->view.base_array_layer,
+                                       isv->view.array_len,
+                                       astc5x5_wa_bits);
       }
 
-      iris_resource_prepare_texture(ice, batch, res, isv->view.format,
-                                    isv->view.base_level, isv->view.levels,
-                                    isv->view.base_array_layer,
-                                    isv->view.array_len,
-                                    astc5x5_wa_bits);
-
       iris_cache_flush_for_read(batch, res->bo);
    }
 }
@@ -127,16 +126,15 @@ resolve_image_views(struct iris_context *ice,
       const int i = u_bit_scan(&views);
       struct iris_resource *res = (void *) shs->image[i].res;
 
-      if (res->base.target == PIPE_BUFFER)
-         continue;
+      if (res->base.target != PIPE_BUFFER) {
+         if (consider_framebuffer) {
+            disable_rb_aux_buffer(ice, draw_aux_buffer_disabled,
+                                  res, 0, ~0, "as a shader image");
+         }
 
-      if (consider_framebuffer) {
-         disable_rb_aux_buffer(ice, draw_aux_buffer_disabled,
-                               res, 0, ~0, "as a shader image");
+         iris_resource_prepare_image(ice, batch, res);
       }
 
-      iris_resource_prepare_image(ice, batch, res);
-
       iris_cache_flush_for_read(batch, res->bo);
    }
 }