From a33c7e496a57ba6bb8b8960715ddbee559908a36 Mon Sep 17 00:00:00 2001 From: Fabien Sanglard Date: Fri, 10 Mar 2017 10:31:14 -0800 Subject: Add maxVirtualDisplaySize to configStore Change-Id: I2c97995edda77b0044d3eaf394080bf7be6c0d77 --- configstore/1.0/ISurfaceFlingerConfigs.hal | 6 ++++++ configstore/1.0/default/SurfaceFlingerConfigs.cpp | 12 ++++++++++++ configstore/1.0/default/SurfaceFlingerConfigs.h | 1 + configstore/1.0/default/surfaceflinger.mk | 4 ++++ 4 files changed, 23 insertions(+) (limited to 'configstore') 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 SurfaceFlingerConfigs::useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl return Void(); } +Return 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 hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) override; Return presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb) override; Return useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) override; + Return 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 -- cgit v1.2.3