| digraph T { |
| /* Make sure our payloads are always drawn below the driver node */ |
| subgraph cluster_driver { |
| fillcolor = grey; |
| style = filled; |
| driver -> {payload1, payload2} [dir=none]; |
| } |
| |
| /* Driver malloc references */ |
| edge [style=dashed]; |
| driver -> port1; |
| driver -> port2; |
| driver -> port3:e; |
| driver -> port4; |
| |
| payload1:s -> port1:e; |
| payload2:s -> port3:e; |
| edge [style=""]; |
| |
| subgraph cluster_topology { |
| label="Topology Manager"; |
| labelloc=bottom; |
| |
| /* Topology references */ |
| mstb1 -> {port1, port2}; |
| port1 -> mstb2; |
| port2 -> mstb3 -> {port3, port4}; |
| port3 -> mstb4; |
| |
| /* Malloc references */ |
| edge [style=dashed;dir=back]; |
| mstb1 -> {port1, port2}; |
| port1 -> mstb2; |
| port2 -> mstb3 -> {port3, port4}; |
| port3 -> mstb4; |
| } |
| |
| driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue]; |
| |
| payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue]; |
| payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue]; |
| |
| mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen;shape=oval]; |
| mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen;shape=oval]; |
| mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;shape=oval]; |
| mstb4 [label="MSTB #4";style=filled;fillcolor=palegreen;shape=oval]; |
| |
| port1 [label="Port #1";shape=oval]; |
| port2 [label="Port #2";shape=oval]; |
| port3 [label="Port #3";shape=oval]; |
| port4 [label="Port #4";shape=oval]; |
| } |