diff --git a/sde-drm/Makefile.am b/sde-drm/Makefile.am
index 104d9d5..df767cf 100644
--- a/sde-drm/Makefile.am
+++ b/sde-drm/Makefile.am
@@ -18,6 +18,6 @@
 libsdedrm_la_CC = @CC@
 libsdedrm_la_SOURCES = $(cpp_sources)
 libsdedrm_la_CFLAGS = $(AM_CFLAGS) -DLOG_TAG=\"SDE_DRM\"
-libsdedrm_la_CPPFLAGS = $(AM_CPPFLAGS)
+libsdedrm_la_CPPFLAGS = $(AM_CPPFLAGS) -DPP_DRM_ENABLE
 libsdedrm_la_LIBADD = ../libdrmutils/libdrmutils.la ../libdebug/libdisplaydebug.la -ldrm
 libsdedrm_la_LDFLAGS = -shared -avoid-version
diff --git a/sde-drm/drm_atomic_req.cpp b/sde-drm/drm_atomic_req.cpp
index 6935ed0..84d5b6d 100644
--- a/sde-drm/drm_atomic_req.cpp
+++ b/sde-drm/drm_atomic_req.cpp
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2019, The Linux Foundation. All rights reserved.
+* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
@@ -135,7 +135,7 @@
       drm_mgr_->GetDppsMgrIntf()->CommitDppsFeatures(drm_atomic_req_, token_);
     } break;
     case DRMOps::PLANES_RESET_CACHE: {
-      drm_mgr_->GetPlaneMgr()->ResetCache(obj_id);
+      drm_mgr_->GetPlaneMgr()->ResetCache(drm_atomic_req_, obj_id);
     } break;
     default:
       DRM_LOGE("Invalid opcode %d", opcode);
diff --git a/sde-drm/drm_plane.cpp b/sde-drm/drm_plane.cpp
index bee1922..e2177f7 100644
--- a/sde-drm/drm_plane.cpp
+++ b/sde-drm/drm_plane.cpp
@@ -403,14 +403,15 @@
   }
 }
 
-void DRMPlaneManager::ResetCache(uint32_t crtc_id) {
+void DRMPlaneManager::ResetCache(drmModeAtomicReq *req, uint32_t crtc_id) {
   lock_guard<mutex> lock(lock_);
   for (auto &plane : plane_pool_) {
     uint32_t assigned_crtc = 0;
     plane.second->GetAssignedCrtc(&assigned_crtc);
-    if (assigned_crtc == crtc_id) {
-      plane.second->ResetCache();
-    }
+#ifndef TRUSTED_VM
+    if (assigned_crtc == crtc_id)
+#endif
+      plane.second->ResetCache(req);
   }
 }
 
@@ -1189,4 +1190,42 @@
   pp_mgr_->SetPPFeature(req, drm_plane_->plane_id, pp_feature_info);
 }
 
+
+void DRMPlane::ResetCache(drmModeAtomicReq *req) {
+  tmp_prop_val_map_.clear();
+  committed_prop_val_map_.clear();
+
+  for (int i = 0; i <= (int32_t)(DRMTonemapLutType::VIG_3D_GAMUT); i++) {
+    auto itr = plane_type_info_.tonemap_lut_version_map.find(static_cast<DRMTonemapLutType>(i));
+    if (itr != plane_type_info_.tonemap_lut_version_map.end()) {
+      DRMPlaneLutState *lut_state = nullptr;
+      DRMPPFeatureID feature_id = {};
+      switch (static_cast<DRMTonemapLutType>(i)) {
+        case DRMTonemapLutType::DMA_1D_GC:
+          lut_state = &dgm_1d_lut_gc_state_;
+          feature_id = kFeatureDgmGc;
+          break;
+        case DRMTonemapLutType::DMA_1D_IGC:
+          lut_state = &dgm_1d_lut_igc_state_;
+          feature_id = kFeatureDgmIgc;
+          break;
+        case DRMTonemapLutType::VIG_1D_IGC:
+          lut_state = &vig_1d_lut_igc_state_;
+          feature_id = kFeatureVigIgc;
+          break;
+        case DRMTonemapLutType::VIG_3D_GAMUT:
+          lut_state = &vig_3d_lut_gamut_state_;
+          feature_id = kFeatureVigGamut;
+          break;
+        default:
+          DLOGE("Invalid lut type = %d", i);
+          return;
+      }
+
+      *lut_state = kDirty;
+      ResetColorLUT(feature_id, req);
+    }
+  }
+}
+
 }  // namespace sde_drm
diff --git a/sde-drm/drm_plane.h b/sde-drm/drm_plane.h
index fc464be..c827489 100644
--- a/sde-drm/drm_plane.h
+++ b/sde-drm/drm_plane.h
@@ -84,10 +84,7 @@
   void ResetColorLUTs(bool is_commit, drmModeAtomicReq *req);
   void ResetColorLUTState(DRMTonemapLutType lut_type, bool is_commit, drmModeAtomicReq *req);
   void ResetColorLUT(DRMPPFeatureID id, drmModeAtomicReq *req);
-  void ResetCache() {
-    tmp_prop_val_map_.clear();
-    committed_prop_val_map_.clear();
-  }
+  void ResetCache(drmModeAtomicReq *req);
 
  private:
   typedef std::map<DRMProperty, std::tuple<uint64_t, drmModePropertyRes *>> PropertyMap;
@@ -137,7 +134,7 @@
   void UnsetScalerLUT();
   void PostValidate(uint32_t crtc_id, bool success);
   void PostCommit(uint32_t crtc_id, bool success);
-  void ResetCache(uint32_t crtc_id);
+  void ResetCache(drmModeAtomicReq *req, uint32_t crtc_id);
 
  private:
   void Perform(DRMOps code, drmModeAtomicReq *req, uint32_t obj_id, ...);
diff --git a/sdm/libs/core/Makefile.am b/sdm/libs/core/Makefile.am
index 697cecd..415a3a6 100644
--- a/sdm/libs/core/Makefile.am
+++ b/sdm/libs/core/Makefile.am
@@ -41,6 +41,6 @@
 libsdmcore_la_CC = @CC@
 libsdmcore_la_SOURCES = $(c_sources)
 libsdmcore_la_CFLAGS = $(COMMON_CFLAGS) -DLOG_TAG=\"SDM\"
-libsdmcore_la_CPPFLAGS = $(AM_CPPFLAGS)
+libsdmcore_la_CPPFLAGS = $(AM_CPPFLAGS) -DPP_DRM_ENABLE
 libsdmcore_la_LIBADD = ../utils/libsdmutils.la ../../../sde-drm/libsdedrm.la -ldl -ldisplaydebug
 libsdmcore_la_LDFLAGS = -shared -avoid-version
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index a125d24..2a30d6f 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -1141,6 +1141,11 @@
     }
   }
 
+#ifdef TRUSTED_VM
+  if (first_cycle_)
+    drm_atomic_intf_->Perform(sde_drm::DRMOps::PLANES_RESET_CACHE, token_.crtc_id);
+#endif
+
   for (uint32_t i = 0; i < hw_layer_count; i++) {
     Layer &layer = hw_layer_info.hw_layers.at(i);
     LayerBuffer *input_buffer = &layer.input_buffer;
