diff --git a/DrmHwcTwo.cpp b/DrmHwcTwo.cpp
index 90d39f0..76eba84 100644
--- a/DrmHwcTwo.cpp
+++ b/DrmHwcTwo.cpp
@@ -619,12 +619,6 @@
   }
 }
 
-bool DrmHwcTwo::HwcDisplay::HardwareSupportsLayerType(
-    HWC2::Composition comp_type) {
-  return comp_type == HWC2::Composition::Device ||
-         comp_type == HWC2::Composition::Cursor;
-}
-
 HWC2::Error DrmHwcTwo::HwcDisplay::CreateComposition(bool test) {
   // order the layers by z-order
   bool use_client_layer = false;
diff --git a/DrmHwcTwo.h b/DrmHwcTwo.h
index 251c765..bcd7eb1 100644
--- a/DrmHwcTwo.h
+++ b/DrmHwcTwo.h
@@ -174,7 +174,6 @@
     void RegisterRefreshCallback(hwc2_callback_data_t data,
                                  hwc2_function_pointer_t func);
     HWC2::Error CreateComposition(bool test);
-    bool HardwareSupportsLayerType(HWC2::Composition comp_type);
 
     void ClearDisplay();
 
diff --git a/backend/Backend.cpp b/backend/Backend.cpp
index c7e78c9..4c2a931 100644
--- a/backend/Backend.cpp
+++ b/backend/Backend.cpp
@@ -93,13 +93,18 @@
 
 bool Backend::IsClientLayer(DrmHwcTwo::HwcDisplay *display,
                             DrmHwcTwo::HwcLayer *layer) {
-  return !display->HardwareSupportsLayerType(layer->sf_type()) ||
+  return !HardwareSupportsLayerType(layer->sf_type()) ||
          !BufferInfoGetter::GetInstance()->IsHandleUsable(layer->buffer()) ||
          display->color_transform_hint() != HAL_COLOR_TRANSFORM_IDENTITY ||
          (layer->RequireScalingOrPhasing() &&
           display->resource_manager()->ForcedScalingWithGpu());
 }
 
+bool Backend::HardwareSupportsLayerType(HWC2::Composition comp_type) {
+  return comp_type == HWC2::Composition::Device ||
+         comp_type == HWC2::Composition::Cursor;
+}
+
 uint32_t Backend::CalcPixOps(const std::vector<DrmHwcTwo::HwcLayer *> &layers,
                              size_t first_z, size_t size) {
   uint32_t pixops = 0;
diff --git a/backend/Backend.h b/backend/Backend.h
index 821994f..6aca247 100644
--- a/backend/Backend.h
+++ b/backend/Backend.h
@@ -34,6 +34,7 @@
                              DrmHwcTwo::HwcLayer *layer);
 
  protected:
+  bool HardwareSupportsLayerType(HWC2::Composition comp_type);
   uint32_t CalcPixOps(const std::map<uint32_t, DrmHwcTwo::HwcLayer *> &z_map,
                       size_t first_z, size_t size);
   void MarkValidated(std::map<uint32_t, DrmHwcTwo::HwcLayer *> &z_map,
