summaryrefslogtreecommitdiffstats
path: root/configstore
diff options
context:
space:
mode:
authorFabien Sanglard <sanglardf@google.com>2017-03-10 10:31:14 -0800
committerFabien Sanglard <sanglardf@google.com>2017-03-16 17:19:02 -0700
commita33c7e496a57ba6bb8b8960715ddbee559908a36 (patch)
tree840ab477f380338dcb24409a8adf16ef0835014e /configstore
parent049331f6f7056c9ed291cf0d1fdaeddf2031c52b (diff)
downloadandroid_hardware_interfaces-a33c7e496a57ba6bb8b8960715ddbee559908a36.tar.gz
android_hardware_interfaces-a33c7e496a57ba6bb8b8960715ddbee559908a36.tar.bz2
android_hardware_interfaces-a33c7e496a57ba6bb8b8960715ddbee559908a36.zip
Add maxVirtualDisplaySize to configStore
Change-Id: I2c97995edda77b0044d3eaf394080bf7be6c0d77
Diffstat (limited to 'configstore')
-rw-r--r--configstore/1.0/ISurfaceFlingerConfigs.hal6
-rw-r--r--configstore/1.0/default/SurfaceFlingerConfigs.cpp12
-rw-r--r--configstore/1.0/default/SurfaceFlingerConfigs.h1
-rw-r--r--configstore/1.0/default/surfaceflinger.mk4
4 files changed, 23 insertions, 0 deletions
diff --git a/configstore/1.0/ISurfaceFlingerConfigs.hal b/configstore/1.0/ISurfaceFlingerConfigs.hal
index ce967ee28..1eaa4e90e 100644
--- a/configstore/1.0/ISurfaceFlingerConfigs.hal
+++ b/configstore/1.0/ISurfaceFlingerConfigs.hal
@@ -84,4 +84,10 @@ interface ISurfaceFlingerConfigs {
* GL composition.
*/
useHwcForRGBtoYUV() generates(OptionalBool value);
+
+ /*
+ * Maximum dimension supported by HWC for virtual display.
+ * Must be equals to min(max_width, max_height).
+ */
+ maxVirtualDisplaySize() generates (OptionalUInt64 value);
};
diff --git a/configstore/1.0/default/SurfaceFlingerConfigs.cpp b/configstore/1.0/default/SurfaceFlingerConfigs.cpp
index c4db9fbdd..6b44b7141 100644
--- a/configstore/1.0/default/SurfaceFlingerConfigs.cpp
+++ b/configstore/1.0/default/SurfaceFlingerConfigs.cpp
@@ -89,6 +89,18 @@ Return<void> SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl
return Void();
}
+Return<void> SurfaceFlingerConfigs::maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) {
+ uint64_t maxSize = 0;
+#ifdef MAX_VIRTUAL_DISPLAY_DIMENSION
+ maxSize = MAX_VIRTUAL_DISPLAY_DIMENSION;
+ _hidl_cb({true, maxSize});
+ LOG(INFO) << "SurfaceFlinger MaxVirtualDisplaySize: " << maxSize;
+#else
+ _hidl_cb({false, maxSize});
+#endif
+ return Void();
+}
+
// Methods from ::android::hidl::base::V1_0::IBase follow.
ISurfaceFlingerConfigs* HIDL_FETCH_ISurfaceFlingerConfigs(const char* /* name */) {
return new SurfaceFlingerConfigs();
diff --git a/configstore/1.0/default/SurfaceFlingerConfigs.h b/configstore/1.0/default/SurfaceFlingerConfigs.h
index ecd488c99..a4738e308 100644
--- a/configstore/1.0/default/SurfaceFlingerConfigs.h
+++ b/configstore/1.0/default/SurfaceFlingerConfigs.h
@@ -32,6 +32,7 @@ struct SurfaceFlingerConfigs : public ISurfaceFlingerConfigs {
Return<void> hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) override;
Return<void> presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb) override;
Return<void> useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) override;
+ Return<void> maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) override;
// Methods from ::android::hidl::base::V1_0::IBase follow.
diff --git a/configstore/1.0/default/surfaceflinger.mk b/configstore/1.0/default/surfaceflinger.mk
index c28524b00..0db5134dc 100644
--- a/configstore/1.0/default/surfaceflinger.mk
+++ b/configstore/1.0/default/surfaceflinger.mk
@@ -38,3 +38,7 @@ endif
ifeq ($(TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS),true)
LOCAL_CFLAGS += -DFORCE_HWC_COPY_FOR_VIRTUAL_DISPLAYS
endif
+
+ifneq ($(MAX_VIRTUAL_DISPLAY_DIMENSION),)
+ LOCAL_CFLAGS += -DMAX_VIRTUAL_DISPLAY_DIMENSION=$(MAX_VIRTUAL_DISPLAY_DIMENSION)
+endif