diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index ca2f6ff..e2876a6 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -490,6 +490,11 @@
  DRMRect bounding_rect {};
  bool is_exclusion_rect = false;
  uint32_t color = 0xff000000; // in 8bit argb
+ uint32_t red = 0;
+ uint32_t blue = 0;
+ uint32_t green = 0;
+ uint32_t alpha = 0xff;
+ uint32_t color_bit_depth = 0;
  uint32_t z_order = 0;
  uint32_t plane_alpha = 0xff;
 };
diff --git a/sdm/include/core/layer_stack.h b/sdm/include/core/layer_stack.h
index b8977e2..0e44ab5 100644
--- a/sdm/include/core/layer_stack.h
+++ b/sdm/include/core/layer_stack.h
@@ -291,6 +291,18 @@
   uint32_t count = 0;      //!< Number of elements in the array.
 };
 
+/*! @brief This structure defines solidfill structure.
+
+  @sa LayerSolidFill
+*/
+struct LayerSolidFill {
+  uint32_t bit_depth = 0;  //!< Bit depth of solid fill colors
+  uint32_t red = 0;        //!< Red value
+  uint32_t green = 0;      //!< Green value
+  uint32_t blue = 0;       //!< Blue value
+  uint32_t alpha = 0;      //!< Alpha value
+};
+
 /*! @brief This structure defines display layer object which contains layer properties and a drawing
   buffer.
 
@@ -351,7 +363,9 @@
   uint32_t frame_rate = 0;                         //!< Rate at which frames are being updated for
                                                    //!< this layer.
 
-  uint32_t solid_fill_color = 0;                   //!< Solid color used to fill the layer when
+  uint32_t solid_fill_color = 0;                   //!< TODO: Remove this field when fb support
+                                                   //!  is deprecated.
+                                                   //!< Solid color used to fill the layer when
                                                    //!< no content is associated with the layer.
 
   LayerFlags flags;                                //!< Flags associated with this layer.
@@ -360,6 +374,7 @@
 
   Lut3d lut_3d = {};                               //!< o/p - Populated by SDM when tone mapping is
                                                    //!< needed on this layer.
+  LayerSolidFill solid_fill_info = {};             //!< solid fill info along with depth.
 };
 
 /*! @brief This structure defines a layer stack that contains layers which need to be composed and
diff --git a/sdm/include/private/hw_info_types.h b/sdm/include/private/hw_info_types.h
index 421277a..73f3cda 100644
--- a/sdm/include/private/hw_info_types.h
+++ b/sdm/include/private/hw_info_types.h
@@ -476,6 +476,7 @@
   uint32_t color = 0;
   LayerRect roi = {};
   bool is_exclusion_rect = false;
+  LayerSolidFill solid_fill_info = {};
 };
 
 struct HWLayerConfig {
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index a5ed8a2..6d6d4d0 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -715,6 +715,7 @@
     HWRotatorSession *hw_rotator_session = &hw_layers->config[i].hw_rotator_session;
 
     if (hw_layers->config[i].use_solidfill_stage) {
+      hw_layers->config[i].hw_solidfill_stage.solid_fill_info = layer.solid_fill_info;
       AddSolidfillStage(hw_layers->config[i].hw_solidfill_stage, layer.plane_alpha);
       continue;
     }
@@ -812,7 +813,19 @@
   solidfill.is_exclusion_rect  = sf.is_exclusion_rect;
   solidfill.plane_alpha = plane_alpha;
   solidfill.z_order = sf.z_order;
-  solidfill.color = sf.color;
+  if (!sf.solid_fill_info.bit_depth) {
+    solidfill.color_bit_depth = 8;
+    solidfill.alpha = (0xff000000 & sf.color) >> 24;
+    solidfill.red = (0xff0000 & sf.color) >> 16;
+    solidfill.green = (0xff00 & sf.color) >> 8;
+    solidfill.blue = 0xff & sf.color;
+  } else {
+    solidfill.color_bit_depth = sf.solid_fill_info.bit_depth;
+    solidfill.alpha = sf.solid_fill_info.alpha;
+    solidfill.red = sf.solid_fill_info.red;
+    solidfill.green = sf.solid_fill_info.green;
+    solidfill.blue = sf.solid_fill_info.blue;
+  }
   solid_fills_.push_back(solidfill);
   DLOGI_IF(kTagDriverConfig, "Add a solidfill stage at z_order:%d argb_color:%x plane_alpha:%x",
            solidfill.z_order, solidfill.color, solidfill.plane_alpha);
diff --git a/sdm/libs/hwc2/hwc_color_manager.cpp b/sdm/libs/hwc2/hwc_color_manager.cpp
index d753fdc..5b6720a 100644
--- a/sdm/libs/hwc2/hwc_color_manager.cpp
+++ b/sdm/libs/hwc2/hwc_color_manager.cpp
@@ -171,6 +171,7 @@
 
 int HWCColorManager::SetSolidFill(const void *params, bool enable, HWCDisplay *hwc_display) {
   SCOPE_LOCK(locker_);
+  LayerSolidFill solid_fill_color;
 
   if (params) {
     solid_fill_params_ = *reinterpret_cast<const PPColorFillParams *>(params);
@@ -178,7 +179,19 @@
     solid_fill_params_ = PPColorFillParams();
   }
 
-  uint32_t solid_fill_color = Get8BitsARGBColorValue(solid_fill_params_);
+  if (solid_fill_params_.color.r_bitdepth != solid_fill_params_.color.b_bitdepth
+    || solid_fill_params_.color.r_bitdepth != solid_fill_params_.color.g_bitdepth) {
+    DLOGE("invalid bit depth r %d g %d b %d", solid_fill_params_.color.r_bitdepth,
+        solid_fill_params_.color.g_bitdepth, solid_fill_params_.color.b_bitdepth);
+    return -EINVAL;
+  }
+
+  solid_fill_color.bit_depth = solid_fill_params_.color.r_bitdepth;
+  solid_fill_color.red = solid_fill_params_.color.r;
+  solid_fill_color.blue = solid_fill_params_.color.b;
+  solid_fill_color.green = solid_fill_params_.color.g;
+  solid_fill_color.alpha = 0x3ff;
+
   if (enable) {
     LayerRect solid_fill_rect = {
       FLOAT(solid_fill_params_.rect.x), FLOAT(solid_fill_params_.rect.y),
@@ -186,10 +199,14 @@
       FLOAT(solid_fill_params_.rect.y) + FLOAT(solid_fill_params_.rect.height),
     };
 
-    hwc_display->Perform(HWCDisplayPrimary::SET_QDCM_SOLID_FILL_INFO, solid_fill_color);
+    hwc_display->Perform(HWCDisplayPrimary::SET_QDCM_SOLID_FILL_INFO, &solid_fill_color);
     hwc_display->Perform(HWCDisplayPrimary::SET_QDCM_SOLID_FILL_RECT, &solid_fill_rect);
   } else {
-    hwc_display->Perform(HWCDisplayPrimary::UNSET_QDCM_SOLID_FILL_INFO, 0);
+    solid_fill_color.red = 0;
+    solid_fill_color.blue = 0;
+    solid_fill_color.green = 0;
+    solid_fill_color.alpha = 0;
+    hwc_display->Perform(HWCDisplayPrimary::UNSET_QDCM_SOLID_FILL_INFO, &solid_fill_color);
   }
 
   return 0;
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index 06d4749..0e8dc05 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -1694,7 +1694,12 @@
     solid_fill_layer_->dst_rect = rect;
 
     solid_fill_layer_->blending = kBlendingPremultiplied;
-    solid_fill_layer_->solid_fill_color = solid_fill_color_;
+    solid_fill_layer_->solid_fill_color = 0;
+    solid_fill_layer_->solid_fill_info.bit_depth = solid_fill_color_.bit_depth;
+    solid_fill_layer_->solid_fill_info.red = solid_fill_color_.red;
+    solid_fill_layer_->solid_fill_info.blue = solid_fill_color_.blue;
+    solid_fill_layer_->solid_fill_info.green = solid_fill_color_.green;
+    solid_fill_layer_->solid_fill_info.alpha = solid_fill_color_.alpha;
     solid_fill_layer_->frame_rate = 60;
     solid_fill_layer_->visible_regions.push_back(solid_fill_layer_->dst_rect);
     solid_fill_layer_->flags.updating = 1;
diff --git a/sdm/libs/hwc2/hwc_display.h b/sdm/libs/hwc2/hwc_display.h
index e773e91..8f43737 100644
--- a/sdm/libs/hwc2/hwc_display.h
+++ b/sdm/libs/hwc2/hwc_display.h
@@ -293,7 +293,7 @@
   bool solid_fill_enable_ = false;
   Layer *solid_fill_layer_ = NULL;
   LayerRect solid_fill_rect_ = {};
-  uint32_t solid_fill_color_ = 0;
+  LayerSolidFill solid_fill_color_ = {};
   LayerRect display_rect_;
   bool validated_ = false;
   bool color_tranform_failed_ = false;
diff --git a/sdm/libs/hwc2/hwc_display_primary.cpp b/sdm/libs/hwc2/hwc_display_primary.cpp
index 1094100..64e163a 100644
--- a/sdm/libs/hwc2/hwc_display_primary.cpp
+++ b/sdm/libs/hwc2/hwc_display_primary.cpp
@@ -291,6 +291,7 @@
   va_list args;
   va_start(args, operation);
   int val = 0;
+  LayerSolidFill *solid_fill_color;
   LayerRect *rect = NULL;
 
   switch (operation) {
@@ -307,12 +308,12 @@
       SetDisplayMode(UINT32(val));
       break;
     case SET_QDCM_SOLID_FILL_INFO:
-      val = va_arg(args, int32_t);
-      SetQDCMSolidFillInfo(true, UINT32(val));
+      solid_fill_color = va_arg(args, LayerSolidFill*);
+      SetQDCMSolidFillInfo(true, *solid_fill_color);
       break;
     case UNSET_QDCM_SOLID_FILL_INFO:
-      val = va_arg(args, int32_t);
-      SetQDCMSolidFillInfo(false, UINT32(val));
+      solid_fill_color = va_arg(args, LayerSolidFill*);
+      SetQDCMSolidFillInfo(false, *solid_fill_color);
       break;
     case SET_QDCM_SOLID_FILL_RECT:
       rect = va_arg(args, LayerRect*);
@@ -348,7 +349,7 @@
   use_metadata_refresh_rate_ = enable;
 }
 
-void HWCDisplayPrimary::SetQDCMSolidFillInfo(bool enable, uint32_t color) {
+void HWCDisplayPrimary::SetQDCMSolidFillInfo(bool enable, const LayerSolidFill &color) {
   solid_fill_enable_ = enable;
   solid_fill_color_ = color;
 }
diff --git a/sdm/libs/hwc2/hwc_display_primary.h b/sdm/libs/hwc2/hwc_display_primary.h
index bf6b25f..49840c5 100644
--- a/sdm/libs/hwc2/hwc_display_primary.h
+++ b/sdm/libs/hwc2/hwc_display_primary.h
@@ -76,7 +76,7 @@
   virtual DisplayError SetDisplayMode(uint32_t mode);
   virtual DisplayError DisablePartialUpdateOneFrame();
   void ProcessBootAnimCompleted(void);
-  void SetQDCMSolidFillInfo(bool enable, uint32_t color);
+  void SetQDCMSolidFillInfo(bool enable, const LayerSolidFill &color);
   void ToggleCPUHint(bool set);
   void ForceRefreshRate(uint32_t refresh_rate);
   uint32_t GetOptimalRefreshRate(bool one_updating_layer);
