^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) digraph T {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* Make sure our payloads are always drawn below the driver node */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) subgraph cluster_driver {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) fillcolor = grey;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) style = filled;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) driver -> {payload1, payload2} [dir=none];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) /* Driver malloc references */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) edge [style=dashed];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) driver -> port1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) driver -> port2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) driver -> port3:e;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) driver -> port4 [color=red];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) payload1:s -> port1:e;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) payload2:s -> port3:e;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) edge [style=""];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) subgraph cluster_topology {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) label="Topology Manager";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) labelloc=bottom;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) /* Topology references */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) mstb1 -> {port1, port2};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) port1 -> mstb2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) edge [color=red];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) port2 -> mstb3 -> {port3, port4};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) port3 -> mstb4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) edge [color=""];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) /* Malloc references */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) edge [style=dashed;dir=back];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) mstb1 -> {port1, port2};
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) port1 -> mstb2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) port2 -> mstb3 -> port3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) edge [color=red];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) mstb3 -> port4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) port3 -> mstb4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) mstb4 [label="MSTB #4";style=filled;fillcolor=grey];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) port1 [label="Port #1"];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) port2 [label="Port #2"];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) port3 [label="Port #3"];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) port4 [label="Port #4";style=filled;fillcolor=grey];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) }