[Impeller] detect max cull rect on bounds. (#54013)

Fixes https://github.com/flutter/flutter/issues/151785

if the bounds given to impeller SaveLayer is kMaxCullRect, treat this as unbounded.
diff --git a/impeller/display_list/aiks_dl_unittests.cc b/impeller/display_list/aiks_dl_unittests.cc
index 1daba1e..3d60829 100644
--- a/impeller/display_list/aiks_dl_unittests.cc
+++ b/impeller/display_list/aiks_dl_unittests.cc
@@ -35,7 +35,7 @@
 }  // namespace
 
 TEST_P(AiksTest, CollapsedDrawPaintInSubpass) {
-  DisplayListBuilder builder(GetCullRect(GetWindowSize()));
+  DisplayListBuilder builder;
 
   DlPaint paint;
   paint.setColor(DlColor::kYellow());
@@ -55,7 +55,7 @@
 
 TEST_P(AiksTest, CollapsedDrawPaintInSubpassBackdropFilter) {
   // Bug: https://github.com/flutter/flutter/issues/131576
-  DisplayListBuilder builder(GetCullRect(GetWindowSize()));
+  DisplayListBuilder builder;
 
   DlPaint paint;
   paint.setColor(DlColor::kYellow());
diff --git a/impeller/display_list/dl_dispatcher.cc b/impeller/display_list/dl_dispatcher.cc
index 2a2bfb2..fcd1f7a 100644
--- a/impeller/display_list/dl_dispatcher.cc
+++ b/impeller/display_list/dl_dispatcher.cc
@@ -612,6 +612,9 @@
   GetCanvas().Save(total_content_depth);
 }
 
+static constexpr SkRect kMaxCullRect =
+    SkRect::MakeLTRB(-1E9F, -1E9F, 1E9F, 1E9F);
+
 // |flutter::DlOpReceiver|
 void DlDispatcherBase::saveLayer(const SkRect& bounds,
                                  const flutter::SaveLayerOptions& options,
@@ -622,8 +625,15 @@
   auto promise = options.content_is_clipped()
                      ? ContentBoundsPromise::kMayClipContents
                      : ContentBoundsPromise::kContainsContents;
-  GetCanvas().SaveLayer(paint, skia_conversions::ToRect(bounds),
-                        ToImageFilter(backdrop), promise, total_content_depth,
+  std::optional<Rect> impeller_bounds;
+  if (bounds == kMaxCullRect) {
+    impeller_bounds = std::nullopt;
+  } else {
+    impeller_bounds = skia_conversions::ToRect(bounds);
+  }
+
+  GetCanvas().SaveLayer(paint, impeller_bounds, ToImageFilter(backdrop),
+                        promise, total_content_depth,
                         options.can_distribute_opacity());
 }