sdm: Enable Hybrid composition
Enable Hybrid composition based on property.
Change-Id: I068300bceeac50eaa0e8e7596a677287550189fc
diff --git a/sdm/libs/hwc/blit_engine_c2d.cpp b/sdm/libs/hwc/blit_engine_c2d.cpp
index be8c6f9..a7f621d 100644
--- a/sdm/libs/hwc/blit_engine_c2d.cpp
+++ b/sdm/libs/hwc/blit_engine_c2d.cpp
@@ -57,6 +57,7 @@
#include <utils/rect.h>
#include "blit_engine_c2d.h"
+#include "hwc_debugger.h"
#define __CLASS__ "BlitEngineC2D"
@@ -88,11 +89,13 @@
return 0;
}
-BlitEngineC2d::BlitEngineC2d() : blit_active_(false), dump_frame_count_(0), dump_frame_index_(0) {
+BlitEngineC2d::BlitEngineC2d() {
for (uint32_t i = 0; i < kNumBlitTargetBuffers; i++) {
blit_target_buffer_[i] = NULL;
release_fence_fd_[i] = -1;
}
+
+ HWCDebugHandler::Get()->GetProperty("persist.hwc.blit.comp", &blit_supported_);
}
BlitEngineC2d::~BlitEngineC2d() {
@@ -250,8 +253,7 @@
for (i = 0; i < layer_stack->layer_count; i++) {
Layer &layer = layer_stack->layers[i];
- if (IsUBWCFormat(layer.input_buffer->format)) {
- // UBWC is not currently supported
+ if (!blit_supported_) {
return -1;
}
if (layer.composition == kCompositionGPUTarget) {
diff --git a/sdm/libs/hwc/blit_engine_c2d.h b/sdm/libs/hwc/blit_engine_c2d.h
index 74c4b81..5400611 100644
--- a/sdm/libs/hwc/blit_engine_c2d.h
+++ b/sdm/libs/hwc/blit_engine_c2d.h
@@ -112,9 +112,10 @@
int release_fence_fd_[kNumBlitTargetBuffers];
uint32_t num_blit_target_;
int blit_target_start_index_;
- bool blit_active_;
- uint32_t dump_frame_count_;
- uint32_t dump_frame_index_;
+ bool blit_active_ = false;
+ uint32_t dump_frame_count_ = 0;
+ uint32_t dump_frame_index_ = 0;
+ int blit_supported_ = 0;
};
} // namespace sdm