diff --git a/.ci.yaml b/.ci.yaml
index 8c23a46..6aefb61 100644
--- a/.ci.yaml
+++ b/.ci.yaml
@@ -1396,6 +1396,17 @@
       task_name: color_filter_cache_perf__e2e_summary
     scheduler: luci
 
+  - name: Linux_android raster_cache_use_memory_perf__e2e_summary
+    recipe: devicelab/devicelab_drone
+    presubmit: false
+    bringup: true
+    timeout: 60
+    properties:
+      tags: >
+        ["devicelab","android","linux"]
+      task_name: raster_cache_use_memory_perf__e2e_summary
+    scheduler: luci
+
   - name: Linux_android shader_mask_cache_perf__e2e_summary
     recipe: devicelab/devicelab_drone
     presubmit: false
diff --git a/TESTOWNERS b/TESTOWNERS
index 138354d..0eea918 100644
--- a/TESTOWNERS
+++ b/TESTOWNERS
@@ -70,6 +70,7 @@
 /dev/devicelab/bin/tasks/platform_views_scroll_perf__timeline_summary.dart @zanderso @flutter/engine
 /dev/devicelab/bin/tasks/plugin_dependencies_test.dart @jmagman @flutter/tool
 /dev/devicelab/bin/tasks/routing_test.dart @zanderso @flutter/tool
+/dev/devicelab/bin/tasks/raster_cache_use_memory_perf__e2e_summary.dart @flar @flutter/engine
 /dev/devicelab/bin/tasks/textfield_perf__e2e_summary.dart @zanderso @flutter/engine
 /dev/devicelab/bin/tasks/web_size__compile_test.dart @yjbanov @flutter/web
 /dev/devicelab/bin/tasks/opacity_peephole_col_of_rows_perf__e2e_summary.dart @flar @flutter/engine
diff --git a/dev/benchmarks/macrobenchmarks/lib/common.dart b/dev/benchmarks/macrobenchmarks/lib/common.dart
index fe340ce..3937824 100644
--- a/dev/benchmarks/macrobenchmarks/lib/common.dart
+++ b/dev/benchmarks/macrobenchmarks/lib/common.dart
@@ -21,6 +21,7 @@
 const String kImageFilteredTransformAnimationRouteName = '/imagefiltered_transform_animation';
 const String kMultiWidgetConstructionRouteName = '/multi_widget_construction';
 const String kHeavyGridViewRouteName = '/heavy_gridview';
+const String kRasterCacheUseMemory = '/raster_cache_use_memory';
 const String kShaderMaskCacheRouteName = '/shader_mask_cache';
 const String kSimpleScrollRouteName = '/simple_scroll';
 const String kStackSizeRouteName = '/stack_size';
diff --git a/dev/benchmarks/macrobenchmarks/lib/main.dart b/dev/benchmarks/macrobenchmarks/lib/main.dart
index 356fbd5..b04ebc7 100644
--- a/dev/benchmarks/macrobenchmarks/lib/main.dart
+++ b/dev/benchmarks/macrobenchmarks/lib/main.dart
@@ -28,6 +28,7 @@
 import 'src/picture_cache.dart';
 import 'src/picture_cache_complexity_scoring.dart';
 import 'src/post_backdrop_filter.dart';
+import 'src/raster_cache_use_memory.dart';
 import 'src/shader_mask_cache.dart';
 import 'src/simple_animation.dart';
 import 'src/simple_scroll.dart';
@@ -67,6 +68,7 @@
         kImageFilteredTransformAnimationRouteName: (BuildContext context) => const FilteredChildAnimationPage(FilterType.rotateFilter),
         kMultiWidgetConstructionRouteName: (BuildContext context) => const MultiWidgetConstructTable(10, 20),
         kHeavyGridViewRouteName: (BuildContext context) => const HeavyGridViewPage(),
+        kRasterCacheUseMemory: (BuildContext context) => const RasterCacheUseMemory(),
         kShaderMaskCacheRouteName: (BuildContext context) => const ShaderMaskCachePage(),
         kSimpleScrollRouteName: (BuildContext context) => const SimpleScroll(),
         kStackSizeRouteName: (BuildContext context) => const StackSizePage(),
@@ -194,6 +196,13 @@
             },
           ),
           ElevatedButton(
+            key: const Key(kRasterCacheUseMemory),
+            child: const Text('RasterCache Use Memory'),
+            onPressed: () {
+              Navigator.pushNamed(context, kRasterCacheUseMemory);
+            },
+          ),
+          ElevatedButton(
             key: const Key(kShaderMaskCacheRouteName),
             child: const Text('Shader Mask Cache'),
             onPressed: () {
diff --git a/dev/benchmarks/macrobenchmarks/lib/src/raster_cache_use_memory.dart b/dev/benchmarks/macrobenchmarks/lib/src/raster_cache_use_memory.dart
new file mode 100644
index 0000000..58e666c
--- /dev/null
+++ b/dev/benchmarks/macrobenchmarks/lib/src/raster_cache_use_memory.dart
@@ -0,0 +1,129 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:ui';
+import 'package:flutter/material.dart';
+
+class RasterCacheUseMemory extends StatefulWidget {
+  const RasterCacheUseMemory({super.key});
+
+  @override
+  State<RasterCacheUseMemory> createState() => _RasterCacheUseMemoryState();
+}
+
+class _RasterCacheUseMemoryState extends State<RasterCacheUseMemory>
+    with TickerProviderStateMixin {
+  final ScrollController _controller = ScrollController();
+
+  @override
+  void initState() {
+    super.initState();
+    _controller.addListener(() {
+      if (_controller.offset < 5) {
+        _controller.animateTo(20,
+            duration: const Duration(milliseconds: 1000), curve: Curves.ease);
+      } else if (_controller.offset >= 19) {
+        _controller.animateTo(0,
+            duration: const Duration(milliseconds: 1000), curve: Curves.ease);
+      }
+    });
+    Timer(const Duration(milliseconds: 1000), () {
+      _controller.animateTo(150,
+          duration: const Duration(milliseconds: 1000), curve: Curves.ease);
+    });
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      backgroundColor: Colors.lightBlue,
+      body: ListView(
+        controller: _controller,
+        children: <Widget>[
+          RepaintBoundary(
+            child: ImageFiltered(
+              imageFilter: ImageFilter.blur(
+                sigmaX: 4,
+                sigmaY: 4,
+              ),
+              child: RepaintBoundary(
+                child: Container(
+                  width: 50,
+                  height: 50,
+                  color: Colors.red,
+                ),
+              ),
+            ),
+          ),
+          ShaderMask(
+            shaderCallback: (Rect bounds) {
+              return const RadialGradient(
+                center: Alignment.topLeft,
+                radius: 1.0,
+                colors: <Color>[Colors.yellow, Colors.deepOrange],
+                tileMode: TileMode.mirror,
+              ).createShader(bounds);
+            },
+            blendMode: BlendMode.srcATop,
+            child: Opacity(
+              opacity: 0.5,
+              child: Column(
+                children: <Widget>[
+                  ImageFiltered(
+                    imageFilter: ImageFilter.blur(
+                      sigmaX: 4,
+                      sigmaY: 4,
+                    ),
+                    child: Row(
+                      children: <Widget>[
+                        ImageFiltered(
+                          imageFilter: ImageFilter.blur(
+                            sigmaX: 4,
+                            sigmaY: 4,
+                          ),
+                          child: RepaintBoundary(
+                            child: Container(
+                              margin: const EdgeInsets.fromLTRB(10, 5, 10, 5),
+                              decoration: BoxDecoration(
+                                color: Colors.white70,
+                                boxShadow: const <BoxShadow>[
+                                  BoxShadow(
+                                    blurRadius: 5.0,
+                                  ),
+                                ],
+                                borderRadius: BorderRadius.circular(5.0),
+                              ),
+                              child: const FlutterLogo(
+                                size: 50,
+                              ),
+                            ),
+                          ),
+                        )
+                      ],
+                    ),
+                  )
+                ],
+              ),
+            ),
+          ),
+          const RepaintBoundary(
+            child: FlutterLogo(
+              size: 50,
+            ),
+          ),
+          Container(
+            height: 800,
+          ),
+        ],
+      ),
+    );
+  }
+
+  @override
+  void dispose() {
+    _controller.dispose();
+    super.dispose();
+  }
+}
diff --git a/dev/benchmarks/macrobenchmarks/test/raster_cache_use_memory_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/raster_cache_use_memory_perf_e2e.dart
new file mode 100644
index 0000000..66de397
--- /dev/null
+++ b/dev/benchmarks/macrobenchmarks/test/raster_cache_use_memory_perf_e2e.dart
@@ -0,0 +1,16 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:macrobenchmarks/common.dart';
+
+import 'util.dart';
+
+void main() {
+  macroPerfTestE2E(
+    'raster_cache_use_memory_perf',
+    kRasterCacheUseMemory,
+    pageDelay: const Duration(seconds: 1),
+    duration: const Duration(seconds: 10),
+  );
+}
diff --git a/dev/devicelab/bin/tasks/raster_cache_use_memory_perf__e2e_summary.dart b/dev/devicelab/bin/tasks/raster_cache_use_memory_perf__e2e_summary.dart
new file mode 100644
index 0000000..491fecb
--- /dev/null
+++ b/dev/devicelab/bin/tasks/raster_cache_use_memory_perf__e2e_summary.dart
@@ -0,0 +1,14 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:flutter_devicelab/framework/devices.dart';
+import 'package:flutter_devicelab/framework/framework.dart';
+import 'package:flutter_devicelab/tasks/perf_tests.dart';
+
+Future<void> main() async {
+  deviceOperatingSystem = DeviceOperatingSystem.android;
+  await task(createRasterCacheUseMemoryPerfE2ETest());
+}
diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart
index 263c1fa..609ed48 100644
--- a/dev/devicelab/lib/tasks/perf_tests.dart
+++ b/dev/devicelab/lib/tasks/perf_tests.dart
@@ -384,6 +384,13 @@
   ).run;
 }
 
+TaskFunction createRasterCacheUseMemoryPerfE2ETest() {
+  return PerfTest.e2e(
+    '${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
+    'test/raster_cache_use_memory_perf_e2e.dart',
+  ).run;
+}
+
 TaskFunction createShaderMaskCachePerfE2ETest() {
   return PerfTest.e2e(
     '${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
