diff --git a/hwc2_device/HwcLayer.cpp b/hwc2_device/HwcLayer.cpp
index 2dd51ca..c972e0b 100644
--- a/hwc2_device/HwcLayer.cpp
+++ b/hwc2_device/HwcLayer.cpp
@@ -44,6 +44,9 @@
     layer_data_.pi.alpha = std::lround(layer_properties.alpha.value() *
                                        UINT16_MAX);
   }
+  if (layer_properties.source_crop) {
+    layer_data_.pi.source_crop = layer_properties.source_crop.value();
+  }
 }
 
 // NOLINTNEXTLINE(readability-convert-member-functions-to-static)
diff --git a/hwc2_device/HwcLayer.h b/hwc2_device/HwcLayer.h
index 6b234f7..31bafed 100644
--- a/hwc2_device/HwcLayer.h
+++ b/hwc2_device/HwcLayer.h
@@ -36,6 +36,7 @@
     std::optional<HWC2::Composition> composition_type;
     std::optional<hwc_rect_t> display_frame;
     std::optional<float> alpha;
+    std::optional<hwc_frect_t> source_crop;
   };
 
   explicit HwcLayer(HwcDisplay *parent_display) : parent_(parent_display){};
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp
index 728361b..fba8222 100644
--- a/hwc3/ComposerClient.cpp
+++ b/hwc3/ComposerClient.cpp
@@ -211,6 +211,13 @@
   return hwc_rect{rect->left, rect->top, rect->right, rect->bottom};
 }
 
+std::optional<hwc_frect> AidlToFRect(const std::optional<common::FRect>& rect) {
+  if (!rect) {
+    return std::nullopt;
+  }
+  return hwc_frect{rect->left, rect->top, rect->right, rect->bottom};
+}
+
 std::optional<float> AidlToAlpha(const std::optional<PlaneAlpha>& alpha) {
   if (!alpha) {
     return std::nullopt;
@@ -479,11 +486,10 @@
   properties.composition_type = AidlToCompositionType(command.composition);
   properties.display_frame = AidlToRect(command.displayFrame);
   properties.alpha = AidlToAlpha(command.planeAlpha);
+  properties.source_crop = AidlToFRect(command.sourceCrop);
+
   layer->SetLayerProperties(properties);
 
-  if (command.sourceCrop) {
-    ExecuteSetLayerSourceCrop(display_id, layer_wrapper, *command.sourceCrop);
-  }
   if (command.transform) {
     ExecuteSetLayerTransform(display_id, layer_wrapper, *command.transform);
   }
@@ -1184,16 +1190,6 @@
   }
 }
 
-void ComposerClient::ExecuteSetLayerSourceCrop(
-    int64_t /*display_id*/, HwcLayerWrapper& layer,
-    const common::FRect& source_crop) {
-  const hwc_frect_t rect{source_crop.left, source_crop.top, source_crop.right,
-                         source_crop.bottom};
-  auto err = Hwc2toHwc3Error(layer.layer->SetLayerSourceCrop(rect));
-  if (err != hwc3::Error::kNone) {
-    cmd_result_writer_->AddError(err);
-  }
-}
 void ComposerClient::ExecuteSetLayerTransform(
     int64_t /*display_id*/, HwcLayerWrapper& layer,
     const ParcelableTransform& transform) {
diff --git a/hwc3/ComposerClient.h b/hwc3/ComposerClient.h
index 7e2d19c..d6a4107 100644
--- a/hwc3/ComposerClient.h
+++ b/hwc3/ComposerClient.h
@@ -160,8 +160,6 @@
   void DispatchLayerCommand(int64_t display_id, const LayerCommand& command);
   void ExecuteSetLayerBuffer(int64_t display_id, HwcLayerWrapper& layer_id,
                              const Buffer& buffer);
-  void ExecuteSetLayerSourceCrop(int64_t display_id, HwcLayerWrapper& layer,
-                                 const common::FRect& source_crop);
   void ExecuteSetLayerTransform(int64_t display_id, HwcLayerWrapper& layer,
                                 const ParcelableTransform& transform);
   void ExecuteSetLayerZOrder(int64_t display_id, HwcLayerWrapper& layer,
