1
0
Fork 0

Add explicit mappings from HwcStats enums to atom types

Change-Id: I9496a7a5c3018a3dcea8eddd2bd6b5db80467419
This commit is contained in:
Andrew Wolfers 2025-11-06 14:59:13 +00:00
parent 9a89ceff02
commit 460ef8d0a8
3 changed files with 39 additions and 8 deletions

View file

@ -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,

View file

@ -25,7 +25,6 @@
namespace android::drm_hwcomposer {
enum class ValidationResult {
kUnspecified = 0,
kSuccess,
kFailure,
kSkip,

View file

@ -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<int>(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<int>(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<int32_t>(validation_result),
static_cast<int32_t>(flatten_reason), frame_count,
ValidationResultToAtomType(validation_result),
FlattenReasonToAtomType(flatten_reason), frame_count,
layer_count, used_plane_count,
static_cast<int64_t>(total_pixops),
static_cast<int64_t>(gpu_pixops));
@ -119,6 +151,7 @@ class CompositionStatsReporterDesktop : public CompositionStatsAtomReporter {
}
}
};
} // namespace
std::unique_ptr<CompositionStatsAtomReporter>