iris: Move blit scissoring earlier.

There's no need to e.g. prepare_access() if the blit is a noop.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7454>
diff --git a/src/gallium/drivers/iris/iris_blit.c b/src/gallium/drivers/iris/iris_blit.c
index c9b1b2f..f60b480 100644
--- a/src/gallium/drivers/iris/iris_blit.c
+++ b/src/gallium/drivers/iris/iris_blit.c
@@ -363,6 +363,27 @@
          blorp_flags |= BLORP_BATCH_PREDICATE_ENABLE;
    }
 
+   float src_x0 = info->src.box.x;
+   float src_x1 = info->src.box.x + info->src.box.width;
+   float src_y0 = info->src.box.y;
+   float src_y1 = info->src.box.y + info->src.box.height;
+   float dst_x0 = info->dst.box.x;
+   float dst_x1 = info->dst.box.x + info->dst.box.width;
+   float dst_y0 = info->dst.box.y;
+   float dst_y1 = info->dst.box.y + info->dst.box.height;
+   bool mirror_x = apply_mirror(&src_x0, &src_x1);
+   bool mirror_y = apply_mirror(&src_y0, &src_y1);
+   enum blorp_filter filter;
+
+   if (info->scissor_enable) {
+      bool noop = apply_blit_scissor(&info->scissor,
+                                     &src_x0, &src_y0, &src_x1, &src_y1,
+                                     &dst_x0, &dst_y0, &dst_x1, &dst_y1,
+                                     mirror_x, mirror_y);
+      if (noop)
+         return;
+   }
+
    if (iris_resource_unfinished_aux_import(src_res))
       iris_resource_finish_aux_import(ctx->screen, src_res);
    if (iris_resource_unfinished_aux_import(dst_res))
@@ -405,27 +426,6 @@
                                 dst_aux_usage, dst_clear_supported);
    iris_emit_buffer_barrier_for(batch, dst_res->bo, IRIS_DOMAIN_RENDER_WRITE);
 
-   float src_x0 = info->src.box.x;
-   float src_x1 = info->src.box.x + info->src.box.width;
-   float src_y0 = info->src.box.y;
-   float src_y1 = info->src.box.y + info->src.box.height;
-   float dst_x0 = info->dst.box.x;
-   float dst_x1 = info->dst.box.x + info->dst.box.width;
-   float dst_y0 = info->dst.box.y;
-   float dst_y1 = info->dst.box.y + info->dst.box.height;
-   bool mirror_x = apply_mirror(&src_x0, &src_x1);
-   bool mirror_y = apply_mirror(&src_y0, &src_y1);
-   enum blorp_filter filter;
-
-   if (info->scissor_enable) {
-      bool noop = apply_blit_scissor(&info->scissor,
-                                     &src_x0, &src_y0, &src_x1, &src_y1,
-                                     &dst_x0, &dst_y0, &dst_x1, &dst_y1,
-                                     mirror_x, mirror_y);
-      if (noop)
-         return;
-   }
-
    if (abs(info->dst.box.width) == abs(info->src.box.width) &&
        abs(info->dst.box.height) == abs(info->src.box.height)) {
       if (src_surf.surf->samples > 1 && dst_surf.surf->samples <= 1) {