162306a36Sopenharmony_cidigraph T {
262306a36Sopenharmony_ci    /* Make sure our payloads are always drawn below the driver node */
362306a36Sopenharmony_ci    subgraph cluster_driver {
462306a36Sopenharmony_ci        fillcolor = grey;
562306a36Sopenharmony_ci        style = filled;
662306a36Sopenharmony_ci        edge [dir=none];
762306a36Sopenharmony_ci        driver -> payload1;
862306a36Sopenharmony_ci        driver -> payload2 [penwidth=3];
962306a36Sopenharmony_ci        edge [dir=""];
1062306a36Sopenharmony_ci    }
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci    /* Driver malloc references */
1362306a36Sopenharmony_ci    edge [style=dashed];
1462306a36Sopenharmony_ci    driver -> port1;
1562306a36Sopenharmony_ci    driver -> port2;
1662306a36Sopenharmony_ci    driver -> port3:e;
1762306a36Sopenharmony_ci    driver -> port4 [color=grey];
1862306a36Sopenharmony_ci    payload1:s -> port1:e;
1962306a36Sopenharmony_ci    payload2:s -> port3:e [penwidth=3];
2062306a36Sopenharmony_ci    edge [style=""];
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci    subgraph cluster_topology {
2362306a36Sopenharmony_ci        label="Topology Manager";
2462306a36Sopenharmony_ci        labelloc=bottom;
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci        /* Topology references */
2762306a36Sopenharmony_ci        mstb1 -> {port1, port2};
2862306a36Sopenharmony_ci        port1 -> mstb2;
2962306a36Sopenharmony_ci        edge [color=grey];
3062306a36Sopenharmony_ci        port2 -> mstb3 -> {port3, port4};
3162306a36Sopenharmony_ci        port3 -> mstb4;
3262306a36Sopenharmony_ci        edge [color=""];
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci        /* Malloc references */
3562306a36Sopenharmony_ci        edge [style=dashed;dir=back];
3662306a36Sopenharmony_ci        mstb1 -> {port1, port2};
3762306a36Sopenharmony_ci        port1 -> mstb2;
3862306a36Sopenharmony_ci        port2 -> mstb3 [penwidth=3];
3962306a36Sopenharmony_ci        mstb3 -> port3 [penwidth=3];
4062306a36Sopenharmony_ci        edge [color=grey];
4162306a36Sopenharmony_ci        mstb3 -> port4;
4262306a36Sopenharmony_ci        port3 -> mstb4;
4362306a36Sopenharmony_ci    }
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci    mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen];
4662306a36Sopenharmony_ci    mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen];
4762306a36Sopenharmony_ci    mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;penwidth=3];
4862306a36Sopenharmony_ci    mstb4 [label="MSTB #4";style=filled;fillcolor=grey];
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci    port1 [label="Port #1"];
5162306a36Sopenharmony_ci    port2 [label="Port #2";penwidth=5];
5262306a36Sopenharmony_ci    port3 [label="Port #3";penwidth=3];
5362306a36Sopenharmony_ci    port4 [label="Port #4";style=filled;fillcolor=grey];
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci    driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue];
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci    payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue];
5862306a36Sopenharmony_ci    payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue;penwidth=3];
5962306a36Sopenharmony_ci}
60