diff --git a/services/surfaceflinger/tests/unittests/LayerLifecycleManagerTest.cpp b/services/surfaceflinger/tests/unittests/LayerLifecycleManagerTest.cpp
index 158db75..cfc8e99 100644
--- a/services/surfaceflinger/tests/unittests/LayerLifecycleManagerTest.cpp
+++ b/services/surfaceflinger/tests/unittests/LayerLifecycleManagerTest.cpp
@@ -462,8 +462,7 @@
                                                                GRALLOC_USAGE_PROTECTED /*usage*/));
     EXPECT_EQ(mLifecycleManager.getGlobalChanges().get(),
               ftl::Flags<RequestedLayerState::Changes>(
-                      RequestedLayerState::Changes::Buffer | RequestedLayerState::Changes::Content |
-                      RequestedLayerState::Changes::RequiresComposition)
+                      RequestedLayerState::Changes::Buffer | RequestedLayerState::Changes::Content)
                       .get());
     mLifecycleManager.commitChanges();
 
@@ -497,8 +496,7 @@
               ftl::Flags<RequestedLayerState::Changes>(
                       RequestedLayerState::Changes::Buffer | RequestedLayerState::Changes::Content |
                       RequestedLayerState::Changes::VisibleRegion |
-                      RequestedLayerState::Changes::Visibility |
-                      RequestedLayerState::Changes::RequiresComposition)
+                      RequestedLayerState::Changes::Visibility)
                       .get());
     mLifecycleManager.commitChanges();
 }
@@ -522,8 +520,7 @@
                       RequestedLayerState::Changes::AffectsChildren |
                       RequestedLayerState::Changes::Content |
                       RequestedLayerState::Changes::Geometry |
-                      RequestedLayerState::Changes::VisibleRegion |
-                      RequestedLayerState::Changes::RequiresComposition)
+                      RequestedLayerState::Changes::VisibleRegion)
                       .get());
     mLifecycleManager.commitChanges();
 }
@@ -541,8 +538,7 @@
               ftl::Flags<RequestedLayerState::Changes>(
                       RequestedLayerState::Changes::Content |
                       RequestedLayerState::Changes::AffectsChildren |
-                      RequestedLayerState::Changes::VisibleRegion |
-                      RequestedLayerState::Changes::RequiresComposition)
+                      RequestedLayerState::Changes::VisibleRegion)
                       .string());
     EXPECT_EQ(mLifecycleManager.getChangedLayers()[0]->color.a, static_cast<half>(startingAlpha));
     mLifecycleManager.commitChanges();
@@ -555,8 +551,7 @@
               ftl::Flags<RequestedLayerState::Changes>(
                       RequestedLayerState::Changes::Content |
                       RequestedLayerState::Changes::AffectsChildren |
-                      RequestedLayerState::Changes::VisibleRegion |
-                      RequestedLayerState::Changes::RequiresComposition)
+                      RequestedLayerState::Changes::VisibleRegion)
                       .string());
     EXPECT_EQ(mLifecycleManager.getChangedLayers()[0]->color.a, static_cast<half>(endingAlpha));
     mLifecycleManager.commitChanges();
@@ -586,8 +581,7 @@
                                                             GRALLOC_USAGE_SW_READ_NEVER /*usage*/));
     EXPECT_EQ(mLifecycleManager.getGlobalChanges().get(),
               ftl::Flags<RequestedLayerState::Changes>(
-                      RequestedLayerState::Changes::Buffer | RequestedLayerState::Changes::Content |
-                      RequestedLayerState::Changes::RequiresComposition)
+                      RequestedLayerState::Changes::Buffer | RequestedLayerState::Changes::Content)
                       .get());
     mLifecycleManager.commitChanges();
 
diff --git a/services/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp b/services/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp
index ce4d798..23b6851 100644
--- a/services/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp
+++ b/services/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp
@@ -255,8 +255,7 @@
     setColor(11, {1._hf, 0._hf, 0._hf});
     UPDATE_AND_VERIFY(mSnapshotBuilder, STARTING_ZORDER);
     EXPECT_EQ(getSnapshot(11)->changes,
-              RequestedLayerState::Changes::Content |
-                      RequestedLayerState::Changes::RequiresComposition);
+              RequestedLayerState::Changes::Content);
     EXPECT_EQ(getSnapshot(11)->clientChanges, layer_state_t::eColorChanged);
     EXPECT_EQ(getSnapshot(1)->changes.get(), 0u);
     UPDATE_AND_VERIFY(mSnapshotBuilder, STARTING_ZORDER);
@@ -267,8 +266,7 @@
     setColor(1, {1._hf, 0._hf, 0._hf});
     UPDATE_AND_VERIFY(mSnapshotBuilder, STARTING_ZORDER);
     EXPECT_EQ(getSnapshot(1)->changes,
-              RequestedLayerState::Changes::Content |
-                      RequestedLayerState::Changes::RequiresComposition);
+              RequestedLayerState::Changes::Content);
     EXPECT_EQ(getSnapshot(1)->clientChanges, layer_state_t::eColorChanged);
 }
 
