OSDN Git Service

drm_hwcomposer: Move MarkValidated into Backend
authorMatvii Zorin <matvii.zorin@globallogic.com>
Fri, 29 Jan 2021 14:40:25 +0000 (16:40 +0200)
committerMatvii Zorin <matvii.zorin@globallogic.com>
Tue, 6 Apr 2021 09:46:22 +0000 (12:46 +0300)
The MarkValidated function is used only for display validation which is
implemented in the generic backend.

Signed-off-by: Matvii Zorin <matvii.zorin@globallogic.com>
DrmHwcTwo.cpp
DrmHwcTwo.h
backend/Backend.cpp
backend/Backend.h

index 0647cf1..90d39f0 100644 (file)
@@ -865,17 +865,6 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetVsyncEnabled(int32_t enabled) {
   return HWC2::Error::None;
 }
 
-void DrmHwcTwo::HwcDisplay::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);
-  }
-}
-
 HWC2::Error DrmHwcTwo::HwcDisplay::ValidateDisplay(uint32_t *num_types,
                                                    uint32_t *num_requests) {
   supported(__func__);
index 1a16dce..251c765 100644 (file)
@@ -175,8 +175,6 @@ class DrmHwcTwo : public hwc2_device_t {
                                  hwc2_function_pointer_t func);
     HWC2::Error CreateComposition(bool test);
     bool HardwareSupportsLayerType(HWC2::Composition comp_type);
-    void MarkValidated(std::map<uint32_t, DrmHwcTwo::HwcLayer *> &z_map,
-                       size_t client_first_z, size_t client_size);
 
     void ClearDisplay();
 
index 196a893..c7e78c9 100644 (file)
@@ -46,11 +46,11 @@ HWC2::Error Backend::ValidateDisplay(DrmHwcTwo::HwcDisplay *display,
   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 @@ HWC2::Error Backend::ValidateDisplay(DrmHwcTwo::HwcDisplay *display,
       ++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 @@ uint32_t Backend::CalcPixOps(const std::vector<DrmHwcTwo::HwcLayer *> &layers,
   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,
index a32c57f..821994f 100644 (file)
@@ -36,6 +36,8 @@ class Backend {
  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,