1digraph { 2 rankdir = "BT" 3 subgraph clients { 4 rank = same; 5 browser [label = "Browser"] 6 vnc_client [label = "VNC Client"] 7 } 8 host_renderer [label = < <font color="blue">gfxstream</font> / virglrenderer >] 9 run_cvd 10 wayland_socket [label = "internal/frames.sock", shape = "rectangle"] 11 webrtc [label = < <b>webrtc</b> >, penwidth = 2] 12 vmm [label = < <font color="blue">crosvm</font> / <font color="red">qemu</font> >] 13 14 subgraph cluster_android { 15 label = "Cuttlefish VM" 16 subgraph devices { 17 rank = same; 18 drm_card [label = "/dev/dri/card0", shape = "rectangle"] 19 drm_render [label = "/dev/dri/renderD128", shape = "rectangle"] 20 } 21 subgraph hals { 22 rank = same; 23 angle 24 egl [shape = "rectangle"] 25 hwcomposer_drm [label = "hwcomposer.drm"] 26 hwcomposer_ranchu [label = "hwcomposer.ranchu"] 27 vulkan [shape = "rectangle"] 28 } 29 minigbm 30 mesa 31 swiftshader [label = "SwiftShader Pastel"] 32 surfaceflinger 33 vulkan_ranchu [color = "blue", label = "Gfxstream Vulkan"] 34 } 35 36 webrtc -> browser [dir = both] 37 vmm -> vnc_client [dir = both, color = "red"] 38 39 webrtc -> run_cvd [dir = back] 40 41 wayland_socket -> webrtc [dir = both, color = "blue", label = < <I>Wayland</I> >] 42 vmm -> wayland_socket [dir = both, color = "blue", label = < <I>Wayland</I> >] 43 44 { rank = same; host_renderer -> vmm [dir = both] } 45 46 drm_render -> vmm 47 drm_card -> vmm 48 49 minigbm -> drm_render 50 mesa -> drm_render 51 vulkan_ranchu -> drm_render 52 hwcomposer_drm -> drm_card 53 hwcomposer_ranchu -> drm_card 54 55 minigbm -> hwcomposer_drm [dir = both, label = "HIDL (graphics.allocator)", style = "dashed"] 56 hwcomposer_ranchu -> minigbm [dir = both, label = "AIDL (graphics.allocator)", style = "dashed"] 57 angle -> egl [dir = "back", label = "Symlink", style = "dashed"] 58 egl -> mesa [label = "Symlink", style = "dashed"] 59 vulkan -> angle [dir = "back", label = "Shared library"] 60 vulkan-> swiftshader [label = "Symlink", style = "dashed"] 61 vulkan -> vulkan_ranchu [label = "Symlink", style = "dashed"] 62 63 surfaceflinger -> egl [label = "Shared library"] 64 surfaceflinger -> hwcomposer_ranchu [dir = both, label = "AIDL (graphics.composer3)", style = "dashed"] 65 surfaceflinger -> hwcomposer_drm [dir = both, label = "HIDL (graphics.composer)", style = "dashed"] 66 surfaceflinger -> vulkan [label = "Shared library"] 67 surfaceflinger -> minigbm [dir = both, label = "HIDL (graphics.allocator)"] 68} 69