digraph "Output Pipeline" {
   node [shape=box]

   subgraph {
       "drm_crtc" [bgcolor=grey style=filled]
   }

   subgraph cluster_internal {
       style=dashed
       label="Internal Pipeline"
       {
           node [bgcolor=grey style=filled]
           "drm_encoder A";
           "drm_encoder B";
           "drm_encoder C";
       }

       {
           node [bgcolor=grey style=filled]
           "drm_encoder B" -> "drm_bridge B"
           "drm_encoder C" -> "drm_bridge C1"
           "drm_bridge C1" -> "drm_bridge C2";
       }
   }

   "drm_crtc" -> "drm_encoder A"
   "drm_crtc" -> "drm_encoder B"
   "drm_crtc" -> "drm_encoder C"


   subgraph cluster_output {
       style=dashed
       label="Outputs"

       "drm_encoder A" -> "drm_connector A";
       "drm_bridge B" -> "drm_connector B";
       "drm_bridge C2" -> "drm_connector C";

       "drm_panel"
   }
}