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.h b/libhwcomposer/hwc_virtual.h
index 26d89c9..5f7b20f 100644
--- a/libhwcomposer/hwc_virtual.h
+++ b/libhwcomposer/hwc_virtual.h
@@ -42,11 +42,17 @@
hwc_display_contents_1_t** displays) = 0;
virtual void pause(hwc_context_t* ctx, int dpy) = 0;
virtual void resume(hwc_context_t* ctx, int dpy) = 0;
+ // We can dump the frame buffer and WB
+ // output buffer by dynamically enabling
+ // dumping via a binder call:
+ // adb shell service call display.qservice 15 i32 3 i32 1
+ static bool sVDDumpEnabled;
+ static void dynamicDebug(bool enable) {sVDDumpEnabled = enable;};
};
class HWCVirtualVDS : public HWCVirtualBase {
public:
- explicit HWCVirtualVDS();
+ explicit HWCVirtualVDS(){};
virtual ~HWCVirtualVDS(){};
// Chooses composition type and configures pipe for each layer in virtual
// display list
@@ -64,12 +70,6 @@
hwc_display_contents_1_t** displays);
virtual void pause(hwc_context_t* ctx, int dpy);
virtual void resume(hwc_context_t* ctx, int dpy);
-private:
- // If WFD is enabled through VDS solution
- // we can dump the frame buffer and WB
- // output buffer by setting the property
- // debug.hwc.enable_vds_dump
- bool mVDSDumpEnabled;
};
class HWCVirtualV4L2 : public HWCVirtualBase {