From 460ef8d0a8a736f6755bb286c1286e3e3e97f9e3 Mon Sep 17 00:00:00 2001 From: Andrew Wolfers Date: Thu, 6 Nov 2025 14:59:13 +0000 Subject: [PATCH] Add explicit mappings from HwcStats enums to atom types Change-Id: I9496a7a5c3018a3dcea8eddd2bd6b5db80467419 --- backend/CompositionPlanner.h | 1 - stats/CompositionStats.h | 1 - stats/CompositionStatsAtomReporterDesktop.cpp | 45 ++++++++++++++++--- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/backend/CompositionPlanner.h b/backend/CompositionPlanner.h index 2759004..49475c8 100644 --- a/backend/CompositionPlanner.h +++ b/backend/CompositionPlanner.h @@ -40,7 +40,6 @@ class CompositionPlanner { // Enum of possible reasons that the backend may choose to flatten the // composition. enum class FlattenReason { - kUnspecified = 0, kNone, kStaticScene, kValidateFailed, diff --git a/stats/CompositionStats.h b/stats/CompositionStats.h index 9b52c57..36fd1f3 100644 --- a/stats/CompositionStats.h +++ b/stats/CompositionStats.h @@ -25,7 +25,6 @@ namespace android::drm_hwcomposer { enum class ValidationResult { - kUnspecified = 0, kSuccess, kFailure, kSkip, diff --git a/stats/CompositionStatsAtomReporterDesktop.cpp b/stats/CompositionStatsAtomReporterDesktop.cpp index 54b3b57..1bb0183 100644 --- a/stats/CompositionStatsAtomReporterDesktop.cpp +++ b/stats/CompositionStatsAtomReporterDesktop.cpp @@ -42,10 +42,44 @@ using FlattenReason = CompositionPlanner::FlattenReason; const std::string kStatsServiceName = std::string(IStats::descriptor) .append("/default"); +DesktopAtoms::HwcCompositionStats::ValidationResult ValidationResultToAtomType( + ValidationResult result) { + switch (result) { + case ValidationResult::kSuccess: + return DesktopAtoms::HwcCompositionStats::ValidationResult:: + VALIDATION_RESULT_SUCCESS; + case ValidationResult::kFailure: + return DesktopAtoms::HwcCompositionStats::ValidationResult:: + VALIDATION_RESULT_FAILURE; + case ValidationResult::kSkip: + return DesktopAtoms::HwcCompositionStats::ValidationResult:: + VALIDATION_RESULT_SKIP; + } + LOG_ALWAYS_FATAL("Unknown ValidationResult value=%d", + static_cast(result)); +} + +DesktopAtoms::HwcCompositionStats::FlattenReason FlattenReasonToAtomType( + FlattenReason reason) { + switch (reason) { + case FlattenReason::kNone: + return DesktopAtoms::HwcCompositionStats::FlattenReason:: + FLATTEN_REASON_NONE; + case FlattenReason::kStaticScene: + return DesktopAtoms::HwcCompositionStats::FlattenReason:: + FLATTEN_REASON_STATIC_SCENE; + case FlattenReason::kValidateFailed: + return DesktopAtoms::HwcCompositionStats::FlattenReason:: + FLATTEN_REASON_VALIDATE_FAILED; + case FlattenReason::kCtmWithOffset: + return DesktopAtoms::HwcCompositionStats::FlattenReason:: + FLATTEN_REASON_CTM_WITH_OFFSET; + } + LOG_ALWAYS_FATAL("Unknown FlattenReason value=%d", static_cast(reason)); +} + std::string ValidationResultToString(ValidationResult result) { switch (result) { - case ValidationResult::kUnspecified: - return "Unspecified"; case ValidationResult::kSuccess: return "Success"; case ValidationResult::kFailure: @@ -60,8 +94,6 @@ std::string ValidationResultToString(ValidationResult result) { std::string FlattenReasonToString(FlattenReason reason) { switch (reason) { - case FlattenReason::kUnspecified: - return "Unspecified"; case FlattenReason::kNone: return "None"; case FlattenReason::kStaticScene: @@ -103,8 +135,8 @@ class CompositionStatsReporterDesktop : public CompositionStatsAtomReporter { /*presented_frame_count=*/0, /*present_failed_count=*/0, /*validate_failed_count=*/0, present_failed, - static_cast(validation_result), - static_cast(flatten_reason), frame_count, + ValidationResultToAtomType(validation_result), + FlattenReasonToAtomType(flatten_reason), frame_count, layer_count, used_plane_count, static_cast(total_pixops), static_cast(gpu_pixops)); @@ -119,6 +151,7 @@ class CompositionStatsReporterDesktop : public CompositionStatsAtomReporter { } } }; + } // namespace std::unique_ptr