blob: 8d2d11bab5a97fd406790bc143c8a07435fdc4fb [file] [log] [blame] [edit]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: %3 Pages: 1 -->
<svg width="891pt" height="650pt"
viewBox="0.00 0.00 891.00 650.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 646)">
<title>%3</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-646 887,-646 887,4 -4,4"/>
<g id="clust2" class="cluster">
<title>cluster_android</title>
<polygon fill="none" stroke="black" points="8,-8 8,-330 875,-330 875,-8 8,-8"/>
<text text-anchor="middle" x="441.5" y="-15.8" font-family="Times,serif" font-size="14.00">Cuttlefish VM</text>
</g>
<!-- browser -->
<g id="node1" class="node">
<title>browser</title>
<ellipse fill="none" stroke="black" cx="458" cy="-624" rx="40.09" ry="18"/>
<text text-anchor="middle" x="458" y="-620.3" font-family="Times,serif" font-size="14.00">Browser</text>
</g>
<!-- vnc_client -->
<g id="node2" class="node">
<title>vnc_client</title>
<ellipse fill="none" stroke="black" cx="346" cy="-624" rx="53.09" ry="18"/>
<text text-anchor="middle" x="346" y="-620.3" font-family="Times,serif" font-size="14.00">VNC Client</text>
</g>
<!-- host_renderer -->
<g id="node3" class="node">
<title>host_renderer</title>
<ellipse fill="none" stroke="black" cx="167" cy="-377" rx="104.78" ry="18"/>
<text text-anchor="start" x="94.5" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
<text text-anchor="start" x="98.5" y="-374.3" font-family="Times,serif" font-size="14.00" fill="blue">gfxstream</text>
<text text-anchor="start" x="153.5" y="-374.3" font-family="Times,serif" font-size="14.00"> / virglrenderer </text>
</g>
<!-- vmm -->
<g id="node7" class="node">
<title>vmm</title>
<ellipse fill="none" stroke="black" cx="377" cy="-377" rx="70.39" ry="18"/>
<text text-anchor="start" x="331" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
<text text-anchor="start" x="335" y="-374.3" font-family="Times,serif" font-size="14.00" fill="blue">crosvm</text>
<text text-anchor="start" x="376" y="-374.3" font-family="Times,serif" font-size="14.00"> / </text>
<text text-anchor="start" x="388" y="-374.3" font-family="Times,serif" font-size="14.00" fill="red">qemu</text>
<text text-anchor="start" x="419" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- host_renderer&#45;&gt;vmm -->
<g id="edge6" class="edge">
<title>host_renderer&#45;&gt;vmm</title>
<path fill="none" stroke="black" d="M282.23,-377C286.9,-377 291.56,-377 296.23,-377"/>
<polygon fill="black" stroke="black" points="282,-373.5 272,-377 282,-380.5 282,-373.5"/>
<polygon fill="black" stroke="black" points="296.45,-380.5 306.45,-377 296.45,-373.5 296.45,-380.5"/>
</g>
<!-- run_cvd -->
<g id="node4" class="node">
<title>run_cvd</title>
<ellipse fill="none" stroke="black" cx="556" cy="-624" rx="39.79" ry="18"/>
<text text-anchor="middle" x="556" y="-620.3" font-family="Times,serif" font-size="14.00">run_cvd</text>
</g>
<!-- wayland_socket -->
<g id="node5" class="node">
<title>wayland_socket</title>
<polygon fill="none" stroke="black" points="512,-482 384,-482 384,-446 512,-446 512,-482"/>
<text text-anchor="middle" x="448" y="-460.3" font-family="Times,serif" font-size="14.00">internal/frames.sock</text>
</g>
<!-- webrtc -->
<g id="node6" class="node">
<title>webrtc</title>
<ellipse fill="none" stroke="black" stroke-width="2" cx="458" cy="-551" rx="41.69" ry="18"/>
<text text-anchor="start" x="434" y="-548.3" font-family="Times,serif" font-size="14.00"> </text>
<text text-anchor="start" x="438" y="-548.3" font-family="Times,serif" font-weight="bold" font-size="14.00">webrtc</text>
<text text-anchor="start" x="478" y="-548.3" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- wayland_socket&#45;&gt;webrtc -->
<g id="edge4" class="edge">
<title>wayland_socket&#45;&gt;webrtc</title>
<path fill="none" stroke="blue" d="M451.21,-492.27C452.36,-502.04 453.65,-513.06 454.8,-522.83"/>
<polygon fill="blue" stroke="blue" points="454.67,-491.72 450.02,-482.2 447.72,-492.54 454.67,-491.72"/>
<polygon fill="blue" stroke="blue" points="451.33,-523.3 455.98,-532.82 458.29,-522.48 451.33,-523.3"/>
<text text-anchor="start" x="453" y="-504.8" font-family="Times,serif" font-size="14.00"> </text>
<text text-anchor="start" x="457" y="-504.8" font-family="Times,serif" font-style="italic" font-size="14.00">Wayland</text>
<text text-anchor="start" x="505" y="-504.8" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- webrtc&#45;&gt;browser -->
<g id="edge1" class="edge">
<title>webrtc&#45;&gt;browser</title>
<path fill="none" stroke="black" d="M458,-579.25C458,-584.72 458,-590.48 458,-595.95"/>
<polygon fill="black" stroke="black" points="461.5,-579.19 458,-569.19 454.5,-579.19 461.5,-579.19"/>
<polygon fill="black" stroke="black" points="454.5,-595.97 458,-605.97 461.5,-595.97 454.5,-595.97"/>
</g>
<!-- webrtc&#45;&gt;run_cvd -->
<g id="edge3" class="edge">
<title>webrtc&#45;&gt;run_cvd</title>
<path fill="none" stroke="black" d="M486.65,-572.75C502.39,-584.16 521.54,-598.03 535.72,-608.31"/>
<polygon fill="black" stroke="black" points="488.46,-569.74 478.31,-566.71 484.35,-575.41 488.46,-569.74"/>
</g>
<!-- vmm&#45;&gt;vnc_client -->
<g id="edge2" class="edge">
<title>vmm&#45;&gt;vnc_client</title>
<path fill="none" stroke="red" d="M373.52,-405.47C367.55,-452.67 355.41,-548.65 349.45,-595.73"/>
<polygon fill="red" stroke="red" points="377.04,-405.59 374.82,-395.23 370.09,-404.71 377.04,-405.59"/>
<polygon fill="red" stroke="red" points="345.96,-595.43 348.18,-605.79 352.91,-596.31 345.96,-595.43"/>
</g>
<!-- vmm&#45;&gt;wayland_socket -->
<g id="edge5" class="edge">
<title>vmm&#45;&gt;wayland_socket</title>
<path fill="none" stroke="blue" d="M397.51,-402.56C406.86,-413.75 417.91,-426.97 427.28,-438.19"/>
<polygon fill="blue" stroke="blue" points="400.12,-400.22 391.03,-394.79 394.75,-404.71 400.12,-400.22"/>
<polygon fill="blue" stroke="blue" points="424.66,-440.52 433.76,-445.95 430.03,-436.03 424.66,-440.52"/>
<text text-anchor="start" x="416" y="-417.8" font-family="Times,serif" font-size="14.00"> </text>
<text text-anchor="start" x="420" y="-417.8" font-family="Times,serif" font-style="italic" font-size="14.00">Wayland</text>
<text text-anchor="start" x="468" y="-417.8" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- drm_card -->
<g id="node8" class="node">
<title>drm_card</title>
<polygon fill="none" stroke="black" points="283,-322 191,-322 191,-286 283,-286 283,-322"/>
<text text-anchor="middle" x="237" y="-300.3" font-family="Times,serif" font-size="14.00">/dev/dri/card0</text>
</g>
<!-- drm_card&#45;&gt;vmm -->
<g id="edge8" class="edge">
<title>drm_card&#45;&gt;vmm</title>
<path fill="none" stroke="black" d="M270.53,-322.01C290.69,-332.23 316.44,-345.29 337.56,-356"/>
<polygon fill="black" stroke="black" points="336.1,-359.18 346.6,-360.59 339.27,-352.94 336.1,-359.18"/>
</g>
<!-- drm_render -->
<g id="node9" class="node">
<title>drm_render</title>
<polygon fill="none" stroke="black" points="529.5,-322 402.5,-322 402.5,-286 529.5,-286 529.5,-322"/>
<text text-anchor="middle" x="466" y="-300.3" font-family="Times,serif" font-size="14.00">/dev/dri/renderD128</text>
</g>
<!-- drm_render&#45;&gt;vmm -->
<g id="edge7" class="edge">
<title>drm_render&#45;&gt;vmm</title>
<path fill="none" stroke="black" d="M444.46,-322.19C432.72,-331.55 418.06,-343.24 405.4,-353.34"/>
<polygon fill="black" stroke="black" points="403.06,-350.73 397.43,-359.7 407.43,-356.2 403.06,-350.73"/>
</g>
<!-- angle -->
<g id="node10" class="node">
<title>angle</title>
<ellipse fill="none" stroke="black" cx="719" cy="-144" rx="29.8" ry="18"/>
<text text-anchor="middle" x="719" y="-140.3" font-family="Times,serif" font-size="14.00">angle</text>
</g>
<!-- egl -->
<g id="node11" class="node">
<title>egl</title>
<polygon fill="none" stroke="black" points="867,-162 813,-162 813,-126 867,-126 867,-162"/>
<text text-anchor="middle" x="840" y="-140.3" font-family="Times,serif" font-size="14.00">egl</text>
</g>
<!-- angle&#45;&gt;egl -->
<g id="edge16" class="edge">
<title>angle&#45;&gt;egl</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M758.97,-144C776.67,-144 797.03,-144 812.91,-144"/>
<polygon fill="black" stroke="black" points="758.91,-140.5 748.91,-144 758.91,-147.5 758.91,-140.5"/>
<text text-anchor="middle" x="780.95" y="-129.8" font-family="Times,serif" font-size="14.00">Symlink</text>
</g>
<!-- mesa -->
<g id="node16" class="node">
<title>mesa</title>
<ellipse fill="none" stroke="black" cx="776" cy="-231" rx="29.5" ry="18"/>
<text text-anchor="middle" x="776" y="-227.3" font-family="Times,serif" font-size="14.00">mesa</text>
</g>
<!-- egl&#45;&gt;mesa -->
<g id="edge17" class="edge">
<title>egl&#45;&gt;mesa</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M827.05,-162.2C817.55,-174.82 804.53,-192.1 794.02,-206.07"/>
<polygon fill="black" stroke="black" points="791.07,-204.16 787.85,-214.26 796.66,-208.37 791.07,-204.16"/>
<text text-anchor="middle" x="834.5" y="-183.8" font-family="Times,serif" font-size="14.00">Symlink</text>
</g>
<!-- hwcomposer_drm -->
<g id="node12" class="node">
<title>hwcomposer_drm</title>
<ellipse fill="none" stroke="black" cx="89" cy="-144" rx="72.59" ry="18"/>
<text text-anchor="middle" x="89" y="-140.3" font-family="Times,serif" font-size="14.00">hwcomposer.drm</text>
</g>
<!-- hwcomposer_drm&#45;&gt;drm_card -->
<g id="edge12" class="edge">
<title>hwcomposer_drm&#45;&gt;drm_card</title>
<path fill="none" stroke="black" d="M87.83,-162.25C87.89,-172.4 89.35,-185.14 95,-195 117.09,-233.57 159.03,-262.84 191.63,-281.11"/>
<polygon fill="black" stroke="black" points="190.1,-284.26 200.56,-285.97 193.45,-278.11 190.1,-284.26"/>
</g>
<!-- hwcomposer_ranchu -->
<g id="node13" class="node">
<title>hwcomposer_ranchu</title>
<ellipse fill="none" stroke="black" cx="262" cy="-144" rx="81.79" ry="18"/>
<text text-anchor="middle" x="262" y="-140.3" font-family="Times,serif" font-size="14.00">hwcomposer.ranchu</text>
</g>
<!-- hwcomposer_ranchu&#45;&gt;drm_card -->
<g id="edge13" class="edge">
<title>hwcomposer_ranchu&#45;&gt;drm_card</title>
<path fill="none" stroke="black" d="M258.04,-162.08C256.73,-167.77 255.29,-174.16 254,-180 250.77,-194.64 249.39,-198.2 247,-213 243.63,-233.92 241.03,-257.76 239.33,-275.65"/>
<polygon fill="black" stroke="black" points="235.84,-275.4 238.42,-285.68 242.81,-276.04 235.84,-275.4"/>
</g>
<!-- minigbm -->
<g id="node15" class="node">
<title>minigbm</title>
<ellipse fill="none" stroke="black" cx="300" cy="-231" rx="43.59" ry="18"/>
<text text-anchor="middle" x="300" y="-227.3" font-family="Times,serif" font-size="14.00">minigbm</text>
</g>
<!-- hwcomposer_ranchu&#45;&gt;minigbm -->
<g id="edge15" class="edge">
<title>hwcomposer_ranchu&#45;&gt;minigbm</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M258.03,-172.56C258,-180.09 258.97,-188.08 262,-195 264.11,-199.81 267.24,-204.24 270.81,-208.23"/>
<polygon fill="black" stroke="black" points="261.54,-172.56 258.65,-162.37 254.55,-172.14 261.54,-172.56"/>
<polygon fill="black" stroke="black" points="268.47,-210.84 278.08,-215.32 273.36,-205.83 268.47,-210.84"/>
<text text-anchor="middle" x="333" y="-183.8" font-family="Times,serif" font-size="14.00">AIDL (graphics.allocator)</text>
</g>
<!-- vulkan -->
<g id="node14" class="node">
<title>vulkan</title>
<polygon fill="none" stroke="black" points="594,-162 540,-162 540,-126 594,-126 594,-162"/>
<text text-anchor="middle" x="567" y="-140.3" font-family="Times,serif" font-size="14.00">vulkan</text>
</g>
<!-- vulkan&#45;&gt;angle -->
<g id="edge18" class="edge">
<title>vulkan&#45;&gt;angle</title>
<path fill="none" stroke="black" d="M604.42,-144C630.44,-144 664.68,-144 688.94,-144"/>
<polygon fill="black" stroke="black" points="604.17,-140.5 594.17,-144 604.17,-147.5 604.17,-140.5"/>
<text text-anchor="middle" x="641.55" y="-129.8" font-family="Times,serif" font-size="14.00">Shared library</text>
</g>
<!-- swiftshader -->
<g id="node17" class="node">
<title>swiftshader</title>
<ellipse fill="none" stroke="black" cx="439" cy="-231" rx="77.19" ry="18"/>
<text text-anchor="middle" x="439" y="-227.3" font-family="Times,serif" font-size="14.00">SwiftShader Pastel</text>
</g>
<!-- vulkan&#45;&gt;swiftshader -->
<g id="edge19" class="edge">
<title>vulkan&#45;&gt;swiftshader</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M541.1,-162.2C521.19,-175.42 493.56,-193.77 472.06,-208.04"/>
<polygon fill="black" stroke="black" points="469.96,-205.24 463.56,-213.69 473.83,-211.07 469.96,-205.24"/>
<text text-anchor="middle" x="533.5" y="-183.8" font-family="Times,serif" font-size="14.00">Symlink</text>
</g>
<!-- vulkan_ranchu -->
<g id="node19" class="node">
<title>vulkan_ranchu</title>
<ellipse fill="none" stroke="blue" cx="610" cy="-231" rx="76.09" ry="18"/>
<text text-anchor="middle" x="610" y="-227.3" font-family="Times,serif" font-size="14.00">Gfxstream Vulkan</text>
</g>
<!-- vulkan&#45;&gt;vulkan_ranchu -->
<g id="edge20" class="edge">
<title>vulkan&#45;&gt;vulkan_ranchu</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M575.7,-162.2C581.7,-174.07 589.8,-190.07 596.62,-203.55"/>
<polygon fill="black" stroke="black" points="593.67,-205.48 601.31,-212.82 599.92,-202.32 593.67,-205.48"/>
<text text-anchor="middle" x="614.5" y="-183.8" font-family="Times,serif" font-size="14.00">Symlink</text>
</g>
<!-- minigbm&#45;&gt;drm_render -->
<g id="edge9" class="edge">
<title>minigbm&#45;&gt;drm_render</title>
<path fill="none" stroke="black" d="M329.3,-244.53C353.46,-254.87 388.28,-269.76 416.72,-281.92"/>
<polygon fill="black" stroke="black" points="415.53,-285.22 426.1,-285.93 418.28,-278.78 415.53,-285.22"/>
</g>
<!-- minigbm&#45;&gt;hwcomposer_drm -->
<g id="edge14" class="edge">
<title>minigbm&#45;&gt;hwcomposer_drm</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M247.76,-225.65C199.66,-220.7 132.72,-211.14 112,-195 104.63,-189.26 99.54,-180.61 96.05,-172.12"/>
<polygon fill="black" stroke="black" points="247.42,-229.13 257.72,-226.64 248.11,-222.17 247.42,-229.13"/>
<polygon fill="black" stroke="black" points="99.26,-170.69 92.67,-162.39 92.65,-172.99 99.26,-170.69"/>
<text text-anchor="middle" x="183" y="-183.8" font-family="Times,serif" font-size="14.00">HIDL (graphics.allocator)</text>
</g>
<!-- mesa&#45;&gt;drm_render -->
<g id="edge10" class="edge">
<title>mesa&#45;&gt;drm_render</title>
<path fill="none" stroke="black" d="M749.03,-238.18C702.86,-248.75 607.16,-270.67 539.87,-286.08"/>
<polygon fill="black" stroke="black" points="538.71,-282.76 529.74,-288.4 540.27,-289.58 538.71,-282.76"/>
</g>
<!-- surfaceflinger -->
<g id="node18" class="node">
<title>surfaceflinger</title>
<ellipse fill="none" stroke="black" cx="400" cy="-57" rx="59.59" ry="18"/>
<text text-anchor="middle" x="400" y="-53.3" font-family="Times,serif" font-size="14.00">surfaceflinger</text>
</g>
<!-- surfaceflinger&#45;&gt;egl -->
<g id="edge21" class="edge">
<title>surfaceflinger&#45;&gt;egl</title>
<path fill="none" stroke="black" d="M449.56,-67.14C518.71,-79.96 648.01,-104.15 758,-126 772.69,-128.92 788.83,-132.24 802.88,-135.17"/>
<polygon fill="black" stroke="black" points="802.19,-138.6 812.69,-137.22 803.62,-131.75 802.19,-138.6"/>
<text text-anchor="middle" x="698" y="-96.8" font-family="Times,serif" font-size="14.00">Shared library</text>
</g>
<!-- surfaceflinger&#45;&gt;hwcomposer_drm -->
<g id="edge23" class="edge">
<title>surfaceflinger&#45;&gt;hwcomposer_drm</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M331,-60.87C243.25,-65.23 101.11,-75.01 85,-93 79.53,-99.11 78.63,-107.5 79.67,-115.66"/>
<polygon fill="black" stroke="black" points="331.33,-64.35 341.15,-60.37 330.99,-57.36 331.33,-64.35"/>
<polygon fill="black" stroke="black" points="76.3,-116.65 81.84,-125.68 83.15,-115.17 76.3,-116.65"/>
<text text-anchor="middle" x="159" y="-96.8" font-family="Times,serif" font-size="14.00">HIDL (graphics.composer)</text>
</g>
<!-- surfaceflinger&#45;&gt;hwcomposer_ranchu -->
<g id="edge22" class="edge">
<title>surfaceflinger&#45;&gt;hwcomposer_ranchu</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M333.4,-64.32C295.3,-69.46 252.79,-78.34 241,-93 235.28,-100.11 236.91,-109.01 241.13,-117.32"/>
<polygon fill="black" stroke="black" points="334.01,-67.77 343.49,-63.03 333.12,-60.82 334.01,-67.77"/>
<polygon fill="black" stroke="black" points="238.27,-119.34 246.51,-125.99 244.21,-115.65 238.27,-119.34"/>
<text text-anchor="middle" x="318" y="-96.8" font-family="Times,serif" font-size="14.00">AIDL (graphics.composer3)</text>
</g>
<!-- surfaceflinger&#45;&gt;vulkan -->
<g id="edge24" class="edge">
<title>surfaceflinger&#45;&gt;vulkan</title>
<path fill="none" stroke="black" d="M429.09,-72.81C457.38,-87.2 500.42,-109.11 530.88,-124.62"/>
<polygon fill="black" stroke="black" points="529.4,-127.79 539.9,-129.21 532.58,-121.55 529.4,-127.79"/>
<text text-anchor="middle" x="532" y="-96.8" font-family="Times,serif" font-size="14.00">Shared library</text>
</g>
<!-- surfaceflinger&#45;&gt;minigbm -->
<g id="edge25" class="edge">
<title>surfaceflinger&#45;&gt;minigbm</title>
<path fill="none" stroke="black" d="M398.38,-85.25C397.64,-92.68 396.56,-100.69 395,-108 393.24,-116.25 390.35,-117.68 389,-126 386.44,-141.79 383.55,-146.96 389,-162 392.55,-171.79 400.45,-170.21 404,-180 406.27,-186.27 407.89,-189.59 404,-195 403.01,-196.37 371.22,-206.96 343.05,-216.13"/>
<polygon fill="black" stroke="black" points="401.87,-85.53 399.22,-75.27 394.89,-84.94 401.87,-85.53"/>
<polygon fill="black" stroke="black" points="341.72,-212.89 333.29,-219.3 343.88,-219.54 341.72,-212.89"/>
<text text-anchor="middle" x="460" y="-140.3" font-family="Times,serif" font-size="14.00">HIDL (graphics.allocator)</text>
</g>
<!-- vulkan_ranchu&#45;&gt;drm_render -->
<g id="edge11" class="edge">
<title>vulkan_ranchu&#45;&gt;drm_render</title>
<path fill="none" stroke="black" d="M578.4,-247.58C558.26,-257.51 531.89,-270.51 509.75,-281.43"/>
<polygon fill="black" stroke="black" points="507.97,-278.4 500.55,-285.96 511.07,-284.68 507.97,-278.4"/>
</g>
</g>
</svg>