hwc: vd: Dynamic dumping of frames for virtual displays
Provides a way to enable/disable dumping of virtual display
frames at runtime via binder. The dumping needs to be enabled
from a priviliged shell.
For example,
$ adb shell service call display.qservice 15 i32 3 i32 1
Here 15 is the integer code for DYNAMIC_DEBUG in IQService.h
The first parameter 3 is for DEBUG_VD
The second parameter 1 is to enable.
Change-Id: Idd62c5d9ffa6e4eb7dec585984d145bc6a421336
diff --git a/libhwcomposer/hwc_virtual.cpp b/libhwcomposer/hwc_virtual.cpp
index db43435..b65f417 100644
--- a/libhwcomposer/hwc_virtual.cpp
+++ b/libhwcomposer/hwc_virtual.cpp
@@ -36,6 +36,7 @@
using namespace qhwc;
using namespace overlay;
+bool HWCVirtualBase::sVDDumpEnabled = false;
HWCVirtualBase* HWCVirtualBase::getObject(bool isVDSEnabled) {
if(isVDSEnabled) {
@@ -49,16 +50,6 @@
}
}
-HWCVirtualVDS::HWCVirtualVDS() {
- char value[PROPERTY_VALUE_MAX];
- mVDSDumpEnabled = false;
- if((property_get("debug.hwc.enable_vds_dump", value, NULL) > 0)) {
- if(atoi(value) != 0) {
- mVDSDumpEnabled = true;
- }
- }
-}
-
void HWCVirtualVDS::init(hwc_context_t *ctx) {
const int dpy = HWC_DISPLAY_VIRTUAL;
ctx->mFBUpdate[dpy] =
@@ -216,7 +207,7 @@
ret = -1;
}
- if(mVDSDumpEnabled) {
+ if(sVDDumpEnabled) {
char bufferName[128];
// Dumping frame buffer
sync_wait(fbLayer->acquireFenceFd, 1000);