diff --git a/Power.cpp b/Power.cpp
index e451990..c37fb31 100644
--- a/Power.cpp
+++ b/Power.cpp
@@ -96,6 +96,12 @@
 
     switch(type){
         case Mode::EXPENSIVE_RENDERING:
+            if (is_expensive_rendering_supported()) {
+                *_aidl_return = true;
+            } else {
+                *_aidl_return = false;
+            }
+            break;
         case Mode::INTERACTIVE:
         case Mode::SUSTAINED_PERFORMANCE:
         case Mode::FIXED_PERFORMANCE:
diff --git a/power-common.c b/power-common.c
index a7a32e5..21a6d69 100644
--- a/power-common.c
+++ b/power-common.c
@@ -116,6 +116,13 @@
     }
 }
 
+bool is_expensive_rendering_supported() {
+    char property[PROPERTY_VALUE_MAX];
+    strlcpy(property, perf_get_property("vendor.perf.expensive_rendering", "0").value,
+            PROPERTY_VALUE_MAX);
+    return atoi(property) == 1 ? true : false;
+}
+
 void set_expensive_rendering(bool enabled)
 {
     if (enabled) {
diff --git a/power-common.h b/power-common.h
index b95ea22..688fb81 100644
--- a/power-common.h
+++ b/power-common.h
@@ -62,6 +62,7 @@
 
 void power_init(void);
 void power_hint(power_hint_t hint, void *data);
+bool is_expensive_rendering_supported();
 void set_expensive_rendering(bool enabled);
 void set_interactive(int on);
 
diff --git a/utils.c b/utils.c
index d586df8..d9ecb84 100644
--- a/utils.c
+++ b/utils.c
@@ -56,6 +56,7 @@
     int list[], int numArgs);
 static int (*perf_lock_rel)(int handle);
 static int (*perf_hint)(int, const char *, int, int);
+static PropVal (*perf_get_prop)(const char *prop , const char *def_val);
 static struct list_node active_hint_list_head;
 const char *pkg = "QTI PowerHAL";
 
@@ -102,6 +103,11 @@
         if (!perf_hint) {
             ALOGE("Unable to get perf_hint function handle.\n");
         }
+
+        perf_get_prop = dlsym(qcopt_handle, "perf_get_prop");
+        if (!perf_get_prop) {
+            ALOGE("Unable to get perf_get_prop function handle.\n");
+        }
     }
 }
 
@@ -210,6 +216,16 @@
    return 0;
 }
 
+PropVal perf_get_property(const char *prop , const char *def_val) {
+    PropVal retVal;
+    if (qcopt_handle && perf_get_prop) {
+        retVal = perf_get_prop(prop, def_val);
+    } else {
+        strlcpy(retVal.value, def_val, PROPERTY_VALUE_MAX);
+    }
+    return retVal;
+}
+
 void interaction(int duration, int num_args, int opt_list[])
 {
 #ifdef INTERACTION_BOOST
diff --git a/utils.h b/utils.h
index 4c3dc7f..8a36c70 100644
--- a/utils.h
+++ b/utils.h
@@ -29,6 +29,10 @@
 
 #include <cutils/properties.h>
 
+typedef struct {
+    char value[PROP_VALUE_MAX];
+} PropVal;
+
 int sysfs_read(char *path, char *s, int num_bytes);
 int sysfs_write(char *path, char *s);
 int get_scaling_governor(char governor[], int size);
@@ -45,3 +49,4 @@
 void release_request(int lock_handle);
 int interaction_with_handle(int lock_handle, int duration, int num_args, int opt_list[]);
 int perf_hint_enable(int hint_id, int duration);
+PropVal perf_get_property(const char *prop , const char *def_val);
