1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<!-- Generated by graphviz version 2.43.0 (0)
5 -->
6<!-- Title: %3 Pages: 1 -->
7<svg width="891pt" height="650pt"
8 viewBox="0.00 0.00 891.00 650.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 646)">
10<title>%3</title>
11<polygon fill="white" stroke="transparent" points="-4,4 -4,-646 887,-646 887,4 -4,4"/>
12<g id="clust2" class="cluster">
13<title>cluster_android</title>
14<polygon fill="none" stroke="black" points="8,-8 8,-330 875,-330 875,-8 8,-8"/>
15<text text-anchor="middle" x="441.5" y="-15.8" font-family="Times,serif" font-size="14.00">Cuttlefish VM</text>
16</g>
17<!-- browser -->
18<g id="node1" class="node">
19<title>browser</title>
20<ellipse fill="none" stroke="black" cx="458" cy="-624" rx="40.09" ry="18"/>
21<text text-anchor="middle" x="458" y="-620.3" font-family="Times,serif" font-size="14.00">Browser</text>
22</g>
23<!-- vnc_client -->
24<g id="node2" class="node">
25<title>vnc_client</title>
26<ellipse fill="none" stroke="black" cx="346" cy="-624" rx="53.09" ry="18"/>
27<text text-anchor="middle" x="346" y="-620.3" font-family="Times,serif" font-size="14.00">VNC Client</text>
28</g>
29<!-- host_renderer -->
30<g id="node3" class="node">
31<title>host_renderer</title>
32<ellipse fill="none" stroke="black" cx="167" cy="-377" rx="104.78" ry="18"/>
33<text text-anchor="start" x="94.5" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
34<text text-anchor="start" x="98.5" y="-374.3" font-family="Times,serif" font-size="14.00" fill="blue">gfxstream</text>
35<text text-anchor="start" x="153.5" y="-374.3" font-family="Times,serif" font-size="14.00"> / virglrenderer </text>
36</g>
37<!-- vmm -->
38<g id="node7" class="node">
39<title>vmm</title>
40<ellipse fill="none" stroke="black" cx="377" cy="-377" rx="70.39" ry="18"/>
41<text text-anchor="start" x="331" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
42<text text-anchor="start" x="335" y="-374.3" font-family="Times,serif" font-size="14.00" fill="blue">crosvm</text>
43<text text-anchor="start" x="376" y="-374.3" font-family="Times,serif" font-size="14.00"> / </text>
44<text text-anchor="start" x="388" y="-374.3" font-family="Times,serif" font-size="14.00" fill="red">qemu</text>
45<text text-anchor="start" x="419" y="-374.3" font-family="Times,serif" font-size="14.00"> </text>
46</g>
47<!-- host_renderer&#45;&gt;vmm -->
48<g id="edge6" class="edge">
49<title>host_renderer&#45;&gt;vmm</title>
50<path fill="none" stroke="black" d="M282.23,-377C286.9,-377 291.56,-377 296.23,-377"/>
51<polygon fill="black" stroke="black" points="282,-373.5 272,-377 282,-380.5 282,-373.5"/>
52<polygon fill="black" stroke="black" points="296.45,-380.5 306.45,-377 296.45,-373.5 296.45,-380.5"/>
53</g>
54<!-- run_cvd -->
55<g id="node4" class="node">
56<title>run_cvd</title>
57<ellipse fill="none" stroke="black" cx="556" cy="-624" rx="39.79" ry="18"/>
58<text text-anchor="middle" x="556" y="-620.3" font-family="Times,serif" font-size="14.00">run_cvd</text>
59</g>
60<!-- wayland_socket -->
61<g id="node5" class="node">
62<title>wayland_socket</title>
63<polygon fill="none" stroke="black" points="512,-482 384,-482 384,-446 512,-446 512,-482"/>
64<text text-anchor="middle" x="448" y="-460.3" font-family="Times,serif" font-size="14.00">internal/frames.sock</text>
65</g>
66<!-- webrtc -->
67<g id="node6" class="node">
68<title>webrtc</title>
69<ellipse fill="none" stroke="black" stroke-width="2" cx="458" cy="-551" rx="41.69" ry="18"/>
70<text text-anchor="start" x="434" y="-548.3" font-family="Times,serif" font-size="14.00"> </text>
71<text text-anchor="start" x="438" y="-548.3" font-family="Times,serif" font-weight="bold" font-size="14.00">webrtc</text>
72<text text-anchor="start" x="478" y="-548.3" font-family="Times,serif" font-size="14.00"> </text>
73</g>
74<!-- wayland_socket&#45;&gt;webrtc -->
75<g id="edge4" class="edge">
76<title>wayland_socket&#45;&gt;webrtc</title>
77<path fill="none" stroke="blue" d="M451.21,-492.27C452.36,-502.04 453.65,-513.06 454.8,-522.83"/>
78<polygon fill="blue" stroke="blue" points="454.67,-491.72 450.02,-482.2 447.72,-492.54 454.67,-491.72"/>
79<polygon fill="blue" stroke="blue" points="451.33,-523.3 455.98,-532.82 458.29,-522.48 451.33,-523.3"/>
80<text text-anchor="start" x="453" y="-504.8" font-family="Times,serif" font-size="14.00"> </text>
81<text text-anchor="start" x="457" y="-504.8" font-family="Times,serif" font-style="italic" font-size="14.00">Wayland</text>
82<text text-anchor="start" x="505" y="-504.8" font-family="Times,serif" font-size="14.00"> </text>
83</g>
84<!-- webrtc&#45;&gt;browser -->
85<g id="edge1" class="edge">
86<title>webrtc&#45;&gt;browser</title>
87<path fill="none" stroke="black" d="M458,-579.25C458,-584.72 458,-590.48 458,-595.95"/>
88<polygon fill="black" stroke="black" points="461.5,-579.19 458,-569.19 454.5,-579.19 461.5,-579.19"/>
89<polygon fill="black" stroke="black" points="454.5,-595.97 458,-605.97 461.5,-595.97 454.5,-595.97"/>
90</g>
91<!-- webrtc&#45;&gt;run_cvd -->
92<g id="edge3" class="edge">
93<title>webrtc&#45;&gt;run_cvd</title>
94<path fill="none" stroke="black" d="M486.65,-572.75C502.39,-584.16 521.54,-598.03 535.72,-608.31"/>
95<polygon fill="black" stroke="black" points="488.46,-569.74 478.31,-566.71 484.35,-575.41 488.46,-569.74"/>
96</g>
97<!-- vmm&#45;&gt;vnc_client -->
98<g id="edge2" class="edge">
99<title>vmm&#45;&gt;vnc_client</title>
100<path fill="none" stroke="red" d="M373.52,-405.47C367.55,-452.67 355.41,-548.65 349.45,-595.73"/>
101<polygon fill="red" stroke="red" points="377.04,-405.59 374.82,-395.23 370.09,-404.71 377.04,-405.59"/>
102<polygon fill="red" stroke="red" points="345.96,-595.43 348.18,-605.79 352.91,-596.31 345.96,-595.43"/>
103</g>
104<!-- vmm&#45;&gt;wayland_socket -->
105<g id="edge5" class="edge">
106<title>vmm&#45;&gt;wayland_socket</title>
107<path fill="none" stroke="blue" d="M397.51,-402.56C406.86,-413.75 417.91,-426.97 427.28,-438.19"/>
108<polygon fill="blue" stroke="blue" points="400.12,-400.22 391.03,-394.79 394.75,-404.71 400.12,-400.22"/>
109<polygon fill="blue" stroke="blue" points="424.66,-440.52 433.76,-445.95 430.03,-436.03 424.66,-440.52"/>
110<text text-anchor="start" x="416" y="-417.8" font-family="Times,serif" font-size="14.00"> </text>
111<text text-anchor="start" x="420" y="-417.8" font-family="Times,serif" font-style="italic" font-size="14.00">Wayland</text>
112<text text-anchor="start" x="468" y="-417.8" font-family="Times,serif" font-size="14.00"> </text>
113</g>
114<!-- drm_card -->
115<g id="node8" class="node">
116<title>drm_card</title>
117<polygon fill="none" stroke="black" points="283,-322 191,-322 191,-286 283,-286 283,-322"/>
118<text text-anchor="middle" x="237" y="-300.3" font-family="Times,serif" font-size="14.00">/dev/dri/card0</text>
119</g>
120<!-- drm_card&#45;&gt;vmm -->
121<g id="edge8" class="edge">
122<title>drm_card&#45;&gt;vmm</title>
123<path fill="none" stroke="black" d="M270.53,-322.01C290.69,-332.23 316.44,-345.29 337.56,-356"/>
124<polygon fill="black" stroke="black" points="336.1,-359.18 346.6,-360.59 339.27,-352.94 336.1,-359.18"/>
125</g>
126<!-- drm_render -->
127<g id="node9" class="node">
128<title>drm_render</title>
129<polygon fill="none" stroke="black" points="529.5,-322 402.5,-322 402.5,-286 529.5,-286 529.5,-322"/>
130<text text-anchor="middle" x="466" y="-300.3" font-family="Times,serif" font-size="14.00">/dev/dri/renderD128</text>
131</g>
132<!-- drm_render&#45;&gt;vmm -->
133<g id="edge7" class="edge">
134<title>drm_render&#45;&gt;vmm</title>
135<path fill="none" stroke="black" d="M444.46,-322.19C432.72,-331.55 418.06,-343.24 405.4,-353.34"/>
136<polygon fill="black" stroke="black" points="403.06,-350.73 397.43,-359.7 407.43,-356.2 403.06,-350.73"/>
137</g>
138<!-- angle -->
139<g id="node10" class="node">
140<title>angle</title>
141<ellipse fill="none" stroke="black" cx="719" cy="-144" rx="29.8" ry="18"/>
142<text text-anchor="middle" x="719" y="-140.3" font-family="Times,serif" font-size="14.00">angle</text>
143</g>
144<!-- egl -->
145<g id="node11" class="node">
146<title>egl</title>
147<polygon fill="none" stroke="black" points="867,-162 813,-162 813,-126 867,-126 867,-162"/>
148<text text-anchor="middle" x="840" y="-140.3" font-family="Times,serif" font-size="14.00">egl</text>
149</g>
150<!-- angle&#45;&gt;egl -->
151<g id="edge16" class="edge">
152<title>angle&#45;&gt;egl</title>
153<path fill="none" stroke="black" stroke-dasharray="5,2" d="M758.97,-144C776.67,-144 797.03,-144 812.91,-144"/>
154<polygon fill="black" stroke="black" points="758.91,-140.5 748.91,-144 758.91,-147.5 758.91,-140.5"/>
155<text text-anchor="middle" x="780.95" y="-129.8" font-family="Times,serif" font-size="14.00">Symlink</text>
156</g>
157<!-- mesa -->
158<g id="node16" class="node">
159<title>mesa</title>
160<ellipse fill="none" stroke="black" cx="776" cy="-231" rx="29.5" ry="18"/>
161<text text-anchor="middle" x="776" y="-227.3" font-family="Times,serif" font-size="14.00">mesa</text>
162</g>
163<!-- egl&#45;&gt;mesa -->
164<g id="edge17" class="edge">
165<title>egl&#45;&gt;mesa</title>
166<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"/>
167<polygon fill="black" stroke="black" points="791.07,-204.16 787.85,-214.26 796.66,-208.37 791.07,-204.16"/>
168<text text-anchor="middle" x="834.5" y="-183.8" font-family="Times,serif" font-size="14.00">Symlink</text>
169</g>
170<!-- hwcomposer_drm -->
171<g id="node12" class="node">
172<title>hwcomposer_drm</title>
173<ellipse fill="none" stroke="black" cx="89" cy="-144" rx="72.59" ry="18"/>
174<text text-anchor="middle" x="89" y="-140.3" font-family="Times,serif" font-size="14.00">hwcomposer.drm</text>
175</g>
176<!-- hwcomposer_drm&#45;&gt;drm_card -->
177<g id="edge12" class="edge">
178<title>hwcomposer_drm&#45;&gt;drm_card</title>
179<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"/>
180<polygon fill="black" stroke="black" points="190.1,-284.26 200.56,-285.97 193.45,-278.11 190.1,-284.26"/>
181</g>
182<!-- hwcomposer_ranchu -->
183<g id="node13" class="node">
184<title>hwcomposer_ranchu</title>
185<ellipse fill="none" stroke="black" cx="262" cy="-144" rx="81.79" ry="18"/>
186<text text-anchor="middle" x="262" y="-140.3" font-family="Times,serif" font-size="14.00">hwcomposer.ranchu</text>
187</g>
188<!-- hwcomposer_ranchu&#45;&gt;drm_card -->
189<g id="edge13" class="edge">
190<title>hwcomposer_ranchu&#45;&gt;drm_card</title>
191<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"/>
192<polygon fill="black" stroke="black" points="235.84,-275.4 238.42,-285.68 242.81,-276.04 235.84,-275.4"/>
193</g>
194<!-- minigbm -->
195<g id="node15" class="node">
196<title>minigbm</title>
197<ellipse fill="none" stroke="black" cx="300" cy="-231" rx="43.59" ry="18"/>
198<text text-anchor="middle" x="300" y="-227.3" font-family="Times,serif" font-size="14.00">minigbm</text>
199</g>
200<!-- hwcomposer_ranchu&#45;&gt;minigbm -->
201<g id="edge15" class="edge">
202<title>hwcomposer_ranchu&#45;&gt;minigbm</title>
203<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"/>
204<polygon fill="black" stroke="black" points="261.54,-172.56 258.65,-162.37 254.55,-172.14 261.54,-172.56"/>
205<polygon fill="black" stroke="black" points="268.47,-210.84 278.08,-215.32 273.36,-205.83 268.47,-210.84"/>
206<text text-anchor="middle" x="333" y="-183.8" font-family="Times,serif" font-size="14.00">AIDL (graphics.allocator)</text>
207</g>
208<!-- vulkan -->
209<g id="node14" class="node">
210<title>vulkan</title>
211<polygon fill="none" stroke="black" points="594,-162 540,-162 540,-126 594,-126 594,-162"/>
212<text text-anchor="middle" x="567" y="-140.3" font-family="Times,serif" font-size="14.00">vulkan</text>
213</g>
214<!-- vulkan&#45;&gt;angle -->
215<g id="edge18" class="edge">
216<title>vulkan&#45;&gt;angle</title>
217<path fill="none" stroke="black" d="M604.42,-144C630.44,-144 664.68,-144 688.94,-144"/>
218<polygon fill="black" stroke="black" points="604.17,-140.5 594.17,-144 604.17,-147.5 604.17,-140.5"/>
219<text text-anchor="middle" x="641.55" y="-129.8" font-family="Times,serif" font-size="14.00">Shared library</text>
220</g>
221<!-- swiftshader -->
222<g id="node17" class="node">
223<title>swiftshader</title>
224<ellipse fill="none" stroke="black" cx="439" cy="-231" rx="77.19" ry="18"/>
225<text text-anchor="middle" x="439" y="-227.3" font-family="Times,serif" font-size="14.00">SwiftShader Pastel</text>
226</g>
227<!-- vulkan&#45;&gt;swiftshader -->
228<g id="edge19" class="edge">
229<title>vulkan&#45;&gt;swiftshader</title>
230<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"/>
231<polygon fill="black" stroke="black" points="469.96,-205.24 463.56,-213.69 473.83,-211.07 469.96,-205.24"/>
232<text text-anchor="middle" x="533.5" y="-183.8" font-family="Times,serif" font-size="14.00">Symlink</text>
233</g>
234<!-- vulkan_ranchu -->
235<g id="node19" class="node">
236<title>vulkan_ranchu</title>
237<ellipse fill="none" stroke="blue" cx="610" cy="-231" rx="76.09" ry="18"/>
238<text text-anchor="middle" x="610" y="-227.3" font-family="Times,serif" font-size="14.00">Gfxstream Vulkan</text>
239</g>
240<!-- vulkan&#45;&gt;vulkan_ranchu -->
241<g id="edge20" class="edge">
242<title>vulkan&#45;&gt;vulkan_ranchu</title>
243<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"/>
244<polygon fill="black" stroke="black" points="593.67,-205.48 601.31,-212.82 599.92,-202.32 593.67,-205.48"/>
245<text text-anchor="middle" x="614.5" y="-183.8" font-family="Times,serif" font-size="14.00">Symlink</text>
246</g>
247<!-- minigbm&#45;&gt;drm_render -->
248<g id="edge9" class="edge">
249<title>minigbm&#45;&gt;drm_render</title>
250<path fill="none" stroke="black" d="M329.3,-244.53C353.46,-254.87 388.28,-269.76 416.72,-281.92"/>
251<polygon fill="black" stroke="black" points="415.53,-285.22 426.1,-285.93 418.28,-278.78 415.53,-285.22"/>
252</g>
253<!-- minigbm&#45;&gt;hwcomposer_drm -->
254<g id="edge14" class="edge">
255<title>minigbm&#45;&gt;hwcomposer_drm</title>
256<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"/>
257<polygon fill="black" stroke="black" points="247.42,-229.13 257.72,-226.64 248.11,-222.17 247.42,-229.13"/>
258<polygon fill="black" stroke="black" points="99.26,-170.69 92.67,-162.39 92.65,-172.99 99.26,-170.69"/>
259<text text-anchor="middle" x="183" y="-183.8" font-family="Times,serif" font-size="14.00">HIDL (graphics.allocator)</text>
260</g>
261<!-- mesa&#45;&gt;drm_render -->
262<g id="edge10" class="edge">
263<title>mesa&#45;&gt;drm_render</title>
264<path fill="none" stroke="black" d="M749.03,-238.18C702.86,-248.75 607.16,-270.67 539.87,-286.08"/>
265<polygon fill="black" stroke="black" points="538.71,-282.76 529.74,-288.4 540.27,-289.58 538.71,-282.76"/>
266</g>
267<!-- surfaceflinger -->
268<g id="node18" class="node">
269<title>surfaceflinger</title>
270<ellipse fill="none" stroke="black" cx="400" cy="-57" rx="59.59" ry="18"/>
271<text text-anchor="middle" x="400" y="-53.3" font-family="Times,serif" font-size="14.00">surfaceflinger</text>
272</g>
273<!-- surfaceflinger&#45;&gt;egl -->
274<g id="edge21" class="edge">
275<title>surfaceflinger&#45;&gt;egl</title>
276<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"/>
277<polygon fill="black" stroke="black" points="802.19,-138.6 812.69,-137.22 803.62,-131.75 802.19,-138.6"/>
278<text text-anchor="middle" x="698" y="-96.8" font-family="Times,serif" font-size="14.00">Shared library</text>
279</g>
280<!-- surfaceflinger&#45;&gt;hwcomposer_drm -->
281<g id="edge23" class="edge">
282<title>surfaceflinger&#45;&gt;hwcomposer_drm</title>
283<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"/>
284<polygon fill="black" stroke="black" points="331.33,-64.35 341.15,-60.37 330.99,-57.36 331.33,-64.35"/>
285<polygon fill="black" stroke="black" points="76.3,-116.65 81.84,-125.68 83.15,-115.17 76.3,-116.65"/>
286<text text-anchor="middle" x="159" y="-96.8" font-family="Times,serif" font-size="14.00">HIDL (graphics.composer)</text>
287</g>
288<!-- surfaceflinger&#45;&gt;hwcomposer_ranchu -->
289<g id="edge22" class="edge">
290<title>surfaceflinger&#45;&gt;hwcomposer_ranchu</title>
291<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"/>
292<polygon fill="black" stroke="black" points="334.01,-67.77 343.49,-63.03 333.12,-60.82 334.01,-67.77"/>
293<polygon fill="black" stroke="black" points="238.27,-119.34 246.51,-125.99 244.21,-115.65 238.27,-119.34"/>
294<text text-anchor="middle" x="318" y="-96.8" font-family="Times,serif" font-size="14.00">AIDL (graphics.composer3)</text>
295</g>
296<!-- surfaceflinger&#45;&gt;vulkan -->
297<g id="edge24" class="edge">
298<title>surfaceflinger&#45;&gt;vulkan</title>
299<path fill="none" stroke="black" d="M429.09,-72.81C457.38,-87.2 500.42,-109.11 530.88,-124.62"/>
300<polygon fill="black" stroke="black" points="529.4,-127.79 539.9,-129.21 532.58,-121.55 529.4,-127.79"/>
301<text text-anchor="middle" x="532" y="-96.8" font-family="Times,serif" font-size="14.00">Shared library</text>
302</g>
303<!-- surfaceflinger&#45;&gt;minigbm -->
304<g id="edge25" class="edge">
305<title>surfaceflinger&#45;&gt;minigbm</title>
306<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"/>
307<polygon fill="black" stroke="black" points="401.87,-85.53 399.22,-75.27 394.89,-84.94 401.87,-85.53"/>
308<polygon fill="black" stroke="black" points="341.72,-212.89 333.29,-219.3 343.88,-219.54 341.72,-212.89"/>
309<text text-anchor="middle" x="460" y="-140.3" font-family="Times,serif" font-size="14.00">HIDL (graphics.allocator)</text>
310</g>
311<!-- vulkan_ranchu&#45;&gt;drm_render -->
312<g id="edge11" class="edge">
313<title>vulkan_ranchu&#45;&gt;drm_render</title>
314<path fill="none" stroke="black" d="M578.4,-247.58C558.26,-257.51 531.89,-270.51 509.75,-281.43"/>
315<polygon fill="black" stroke="black" points="507.97,-278.4 500.55,-285.96 511.07,-284.68 507.97,-278.4"/>
316</g>
317</g>
318</svg>
319