digraph slave_ppl {
   rankdir=LR;

   subgraph {
      "Memory";
      "Monitor";
   }
   node [shape=box]
   subgraph cluster_pipeline_slave {
       style=dashed
       label="Slave Pipeline_B"
       node [shape=box]
       {
           node [bgcolor=grey style=dashed]
           "Slave.Scaler-0";
           "Slave.Scaler-1";
       }

      node [bgcolor=grey style=filled]
      "Slave.Layer-0" -> "Slave.Scaler-0"
      "Slave.Layer-1" -> "Slave.Scaler-0"
      "Slave.Layer-2" -> "Slave.Scaler-1"
      "Slave.Layer-3" -> "Slave.Scaler-1"

      "Slave.Layer-0" -> "Slave.Compiz"
      "Slave.Layer-1" -> "Slave.Compiz"
      "Slave.Layer-2" -> "Slave.Compiz"
      "Slave.Layer-3" -> "Slave.Compiz"
      "Slave.Scaler-0" -> "Slave.Compiz"
      "Slave.Scaler-1" -> "Slave.Compiz"
   }

   subgraph cluster_pipeline_master {
       style=dashed
       label="Master Pipeline_A"
       node [shape=box]
       {
           node [bgcolor=grey style=dashed]
           "Scaler-0";
           "Scaler-1";
           "Scaler-0/1"
       }

      node [bgcolor=grey style=filled]
      "Layer-0" -> "Scaler-0"
      "Layer-1" -> "Scaler-0"
      "Layer-2" -> "Scaler-1"
      "Layer-3" -> "Scaler-1"

      "Slave.Compiz" -> "Compiz"
      "Layer-0" -> "Compiz"
      "Layer-1" -> "Compiz"
      "Layer-2" -> "Compiz"
      "Layer-3" -> "Compiz"
      "Scaler-0" -> "Compiz"
      "Scaler-1" -> "Compiz"

      "Compiz" -> "Scaler-0/1" -> "Wb_layer"
      "Compiz" -> "Improc" -> "Timing Controller"
   }

   "Wb_layer" -> "Memory"
   "Timing Controller" -> "Monitor"
}