diff --git a/backend/Backend.cpp b/backend/Backend.cpp
index 196a893..c7e78c9 100644
--- a/backend/Backend.cpp
+++ b/backend/Backend.cpp
@@ -46,11 +46,11 @@
   if (display->compositor().ShouldFlattenOnClient()) {
     client_start = 0;
     client_size = z_map.size();
-    display->MarkValidated(z_map, client_start, client_size);
+    MarkValidated(z_map, client_start, client_size);
   } else {
     std::tie(client_start, client_size) = GetClientLayers(display, z_map);
 
-    display->MarkValidated(z_map, client_start, client_size);
+    MarkValidated(z_map, client_start, client_size);
 
     bool testing_needed = !(client_start == 0 && client_size == z_map.size());
 
@@ -59,7 +59,7 @@
       ++display->total_stats().failed_kms_validate_;
       client_start = 0;
       client_size = z_map.size();
-      display->MarkValidated(z_map, 0, client_size);
+      MarkValidated(z_map, 0, client_size);
     }
   }
 
@@ -112,6 +112,16 @@
   return pixops;
 }
 
+void Backend::MarkValidated(std::map<uint32_t, DrmHwcTwo::HwcLayer *> &z_map,
+                            size_t client_first_z, size_t client_size) {
+  for (std::pair<const uint32_t, DrmHwcTwo::HwcLayer *> &l : z_map) {
+    if (l.first >= client_first_z && l.first < client_first_z + client_size)
+      l.second->set_validated_type(HWC2::Composition::Client);
+    else
+      l.second->set_validated_type(HWC2::Composition::Device);
+  }
+}
+
 std::tuple<int, int> Backend::GetExtraClientRange(
     DrmHwcTwo::HwcDisplay *display,
     const std::vector<DrmHwcTwo::HwcLayer *> &layers, int client_start,
diff --git a/backend/Backend.h b/backend/Backend.h
index a32c57f..821994f 100644
--- a/backend/Backend.h
+++ b/backend/Backend.h
@@ -36,6 +36,8 @@
  protected:
   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,
+                     size_t client_first_z, size_t client_size);
   std::tuple<int, int> GetExtraClientRange(
       DrmHwcTwo::HwcDisplay *display,
       const std::vector<DrmHwcTwo::HwcLayer *> &layers, int client_start,
