Merge "hwc2: Fix the non-secure WriteBack output use case"
diff --git a/sdm/libs/hwc2/hwc_display_virtual.cpp b/sdm/libs/hwc2/hwc_display_virtual.cpp
index c523e31..0ad37bc 100644
--- a/sdm/libs/hwc2/hwc_display_virtual.cpp
+++ b/sdm/libs/hwc2/hwc_display_virtual.cpp
@@ -123,6 +123,16 @@
 
   BuildLayerStack();
   layer_stack_.output_buffer = output_buffer_;
+  // If Output buffer of Virtual Display is not secure, set SKIP flag on the secure layers.
+  if (output_buffer_ && !output_buffer_->flags.secure && layer_stack_.flags.secure_present) {
+    for (auto hwc_layer : layer_set_) {
+      Layer *layer = hwc_layer->GetSDMLayer();
+      if (layer->input_buffer.flags.secure) {
+        layer_stack_.flags.skip_present = true;
+        layer->flags.skip = true;
+      }
+    }
+  }
   status = PrepareLayerStack(out_num_types, out_num_requests);
   return status;
 }