drm_hwcomposer: Move MarkValidated into Backend
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>
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,