summaryrefslogtreecommitdiffstats
path: root/configstore
diff options
context:
space:
mode:
authorFabien Sanglard <sanglardf@google.com>2017-03-10 17:15:43 -0800
committerFabien Sanglard <sanglardf@google.com>2017-03-17 09:52:12 -0700
commitbf4da3df5e4c70f22c7361f91e61730af11386d2 (patch)
tree9a89d44d2656c4361cc8d8da789e1d2da79220b5 /configstore
parent9928f3b29aeebbe301403de2ed40d31f030bbf0c (diff)
downloadandroid_hardware_interfaces-bf4da3df5e4c70f22c7361f91e61730af11386d2.tar.gz
android_hardware_interfaces-bf4da3df5e4c70f22c7361f91e61730af11386d2.tar.bz2
android_hardware_interfaces-bf4da3df5e4c70f22c7361f91e61730af11386d2.zip
Create hasSyncFramework property for SF
Change-Id: I15ef44cd5f901c339902672366d68d1815c3668e
Diffstat (limited to 'configstore')
-rw-r--r--configstore/1.0/ISurfaceFlingerConfigs.hal6
-rw-r--r--configstore/1.0/default/SurfaceFlingerConfigs.cpp10
-rw-r--r--configstore/1.0/default/SurfaceFlingerConfigs.h1
-rw-r--r--configstore/1.0/default/surfaceflinger.mk4
4 files changed, 21 insertions, 0 deletions
diff --git a/configstore/1.0/ISurfaceFlingerConfigs.hal b/configstore/1.0/ISurfaceFlingerConfigs.hal
index 1eaa4e90e..43c96eef9 100644
--- a/configstore/1.0/ISurfaceFlingerConfigs.hal
+++ b/configstore/1.0/ISurfaceFlingerConfigs.hal
@@ -90,4 +90,10 @@ interface ISurfaceFlingerConfigs {
* Must be equals to min(max_width, max_height).
*/
maxVirtualDisplaySize() generates (OptionalUInt64 value);
+
+ /*
+ * Indicates if Sync framework is available. Sync framework provides fence
+ * mechanism which significantly reduces buffer processing latency.
+ */
+ hasSyncFramework() generates(OptionalBool value);
};
diff --git a/configstore/1.0/default/SurfaceFlingerConfigs.cpp b/configstore/1.0/default/SurfaceFlingerConfigs.cpp
index 6b44b7141..e8872e8da 100644
--- a/configstore/1.0/default/SurfaceFlingerConfigs.cpp
+++ b/configstore/1.0/default/SurfaceFlingerConfigs.cpp
@@ -59,6 +59,16 @@ Return<void> SurfaceFlingerConfigs::hasWideColorDisplay(hasWideColorDisplay_cb _
return Void();
}
+Return<void> SurfaceFlingerConfigs::hasSyncFramework(hasSyncFramework_cb _hidl_cb) {
+ bool value = true;
+#ifdef RUNNING_WITHOUT_SYNC_FRAMEWORK
+ value = false;
+#endif
+ _hidl_cb({true, value});
+ LOG(INFO) << "SurfaceFlinger hasSyncFramework: " << value;
+ return Void();
+}
+
Return<void> SurfaceFlingerConfigs::hasHDRDisplay(hasHDRDisplay_cb _hidl_cb) {
bool value = false;
#ifdef HAS_HDR_DISPLAY
diff --git a/configstore/1.0/default/SurfaceFlingerConfigs.h b/configstore/1.0/default/SurfaceFlingerConfigs.h
index a4738e308..bea1ab1f5 100644
--- a/configstore/1.0/default/SurfaceFlingerConfigs.h
+++ b/configstore/1.0/default/SurfaceFlingerConfigs.h
@@ -33,6 +33,7 @@ struct SurfaceFlingerConfigs : public ISurfaceFlingerConfigs {
Return<void> presentTimeOffsetFromVSyncNs(presentTimeOffsetFromVSyncNs_cb _hidl_cb) override;
Return<void> useHwcForRGBtoYUV(useHwcForRGBtoYUV_cb _hidl_cb) override;
Return<void> maxVirtualDisplaySize(maxVirtualDisplaySize_cb _hidl_cb) override;
+ Return<void> hasSyncFramework(hasSyncFramework_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 0db5134dc..6e63fdc3e 100644
--- a/configstore/1.0/default/surfaceflinger.mk
+++ b/configstore/1.0/default/surfaceflinger.mk
@@ -42,3 +42,7 @@ endif
ifneq ($(MAX_VIRTUAL_DISPLAY_DIMENSION),)
LOCAL_CFLAGS += -DMAX_VIRTUAL_DISPLAY_DIMENSION=$(MAX_VIRTUAL_DISPLAY_DIMENSION)
endif
+
+ifeq ($(TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK),true)
+ LOCAL_CFLAGS += -DRUNNING_WITHOUT_SYNC_FRAMEWORK
+endif