Talk: add all demo code to the slides
This commit is contained in:
parent
76a41aacdc
commit
471ae12153
3 changed files with 570 additions and 120 deletions
|
|
@ -1161,7 +1161,11 @@
|
|||
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1786299650606" ID="ID_1358348030" MODIFIED="1786299654447" TEXT="state definition"/>
|
||||
<node CREATED="1786299650606" ID="ID_1358348030" MODIFIED="1786299654447" TEXT="state definition">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786506976676" ID="ID_305985132" MODIFIED="1786506978969" TEXT="use of state per slot...">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1786329171661" ID="ID_652095992" MODIFIED="1786329177583" TEXT="cursor nextShow_">
|
||||
<node CREATED="1786329188409" ID="ID_1322310081" MODIFIED="1786329219244" TEXT="advanced only when display complete"/>
|
||||
<node CREATED="1786329228286" ID="ID_1649533931" MODIFIED="1786329233043" TEXT="used to access state"/>
|
||||
|
|
@ -1185,6 +1189,15 @@
|
|||
<edge COLOR="#c00636"/>
|
||||
<font NAME="SansSerif" SIZE="15"/>
|
||||
</node>
|
||||
<node CREATED="1786459033198" ID="ID_633597539" MODIFIED="1786459039338" TEXT="Relevance for Lumiera">
|
||||
<node CREATED="1786459047294" ID="ID_226094184" MODIFIED="1786459216633" TEXT="Push vs Pull">
|
||||
<node CREATED="1786459117828" ID="ID_1474858578" MODIFIED="1786459119350" TEXT="Proactor requires dispatch of tasks"/>
|
||||
<node CREATED="1786459204313" ID="ID_973630114" MODIFIED="1786459211335" TEXT="Lumiera is entirely oriented towards pull"/>
|
||||
</node>
|
||||
<node CREATED="1786459308503" ID="ID_800162032" MODIFIED="1786459309672" TEXT="active Workers and passive Scheduler"/>
|
||||
<node CREATED="1786459422382" ID="ID_1700153508" MODIFIED="1786459423553" TEXT="Worker peeks URing ⟶ follow-up Job"/>
|
||||
</node>
|
||||
<node CREATED="1786459430927" ID="ID_1463634499" MODIFIED="1786459435868" TEXT="Have a closer look..."/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1754271624646" ID="ID_52826289" MODIFIED="1754271626857" TEXT="Grafik">
|
||||
|
|
@ -1290,7 +1303,8 @@
|
|||
</node>
|
||||
<node CREATED="1786245367557" ID="ID_1248853430" MODIFIED="1786245382367" TEXT="Animation, die schreib- und Leseoperationen zeigt..."/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1785877291601" ID="ID_517600933" MODIFIED="1785877301089" TEXT="Diagramm "State-Ring"">
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1785877291601" ID="ID_517600933" MODIFIED="1786466625791" TEXT="Diagramm "State-Ring"">
|
||||
<linktarget COLOR="#c23657" DESTINATION="ID_517600933" ENDARROW="Default" ENDINCLINATION="134;15;" ID="Arrow_ID_670746681" SOURCE="ID_270282240" STARTARROW="None" STARTINCLINATION="23;-122;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node BACKGROUND_COLOR="#accdc3" COLOR="#3f4015" CREATED="1785877302464" ID="ID_1725774104" MODIFIED="1785880120631" STYLE="fork" TEXT="Ein Schema ist nebenbei im Chat mit Claude "angefallen"">
|
||||
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
|
||||
|
|
@ -1377,6 +1391,18 @@
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785877113392" ID="ID_23421813" MODIFIED="1785877124875" TEXT="Animation: Application-Setup">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786466566730" ID="ID_57913077" MODIFIED="1786466585119" TEXT="Animation: Player and Displayer-Object">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786466585843" ID="ID_1116610832" MODIFIED="1786466590526" TEXT="Animation: Proactor">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1786466604005" ID="ID_270282240" MODIFIED="1786466632751" TEXT="integrate animated State-Ring">
|
||||
<arrowlink COLOR="#c23657" DESTINATION="ID_517600933" ENDARROW="Default" ENDINCLINATION="134;15;" ID="Arrow_ID_670746681" STARTARROW="None" STARTINCLINATION="23;-122;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786466591383" ID="ID_1030877081" MODIFIED="1786466602726" TEXT="Animation: show Frame">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1527792581594" ID="ID_790723996" MODIFIED="1784563161118" TEXT="Einteilung">
|
||||
|
|
@ -1526,6 +1552,56 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1786467933495" ID="ID_1038344188" MODIFIED="1786467938593" TEXT="Animationen / Transitions">
|
||||
<node CREATED="1786467939404" ID="ID_1595177363" MODIFIED="1786467957429" TEXT="Wipe-Transition rundet auf ganze Sec">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1786467964227" ID="ID_1767548224" MODIFIED="1786468004220" TEXT="Workaround...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Transition auf "None", dann Zeit eingeben, dann Transition auf "Wipe", dann Richtung wählen....
|
||||
</p>
|
||||
<p>
|
||||
Funktioniert sogar, wenn man alle Slides der Animation auswählt
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1786500620618" ID="ID_506862674" MODIFIED="1786500633235" TEXT="Dissolve-in für ganzen Code-Frame">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1786500635064" ID="ID_749122408" MODIFIED="1786500717725" TEXT="manchmal erstellt er einzelne Animationen für jede Zeile">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
...das würde zwar letztlich funktionieren, wenn man dann ab dem 2.Absatz alle auf "with previous" umschaltet .... ist aber irre unübersichtlich.  Verstehe nicht, warum er das manchmal macht (vielleicht, wenn man einzelne Absätze schon formatiert hat?)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1786500657782" ID="ID_1681249470" MODIFIED="1786500756647" TEXT="Workaround: mit einem andern Objekt zusammen markieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Zwei Objekte markieren, Animation hinzufügen, dann Animation des 2. Objekts wieder löschen ⟹ Ergebnis: man bekommt die Animation auf den ganzen Frame, nicht einzelne Absätze
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1519523032397" ID="ID_1864078267" MODIFIED="1519527416043" TEXT="Outline">
|
||||
|
|
@ -1636,6 +1712,31 @@
|
|||
</node>
|
||||
<node CREATED="1755783372396" ID="ID_908215409" MODIFIED="1755783394951" TEXT="Auflösung pro Block erhöhen">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1786460010198" HGAP="40" ID="ID_179261156" MODIFIED="1786460087338" TEXT="qrencode -o demoCodeQR.png -l M -s 12 -m 3 -d 90 https://www.lumiera.org/research/ioUring/index.html" VSHIFT="12">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
Wähle diesmal mittlestarke Fehlerkorrektur (-l M)
|
||||
</li>
|
||||
<li>
|
||||
Ein Dot = 12px hat sich bewährt (-s 12)
|
||||
</li>
|
||||
<li>
|
||||
mache den Rand etwas schmäler (-m 3)
|
||||
</li>
|
||||
<li>
|
||||
setze 300 dpi für die Bilddatei
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="list"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,123 +1,472 @@
|
|||
<?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.42.4 (0)
|
||||
-->
|
||||
|
||||
<!-- Title: handoff Pages: 1 -->
|
||||
<svg width="728pt" height="352pt"
|
||||
viewBox="0.00 0.00 728.00 352.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 348)">
|
||||
<title>handoff</title>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_proactor</title>
|
||||
<path fill="#eef4ff" stroke="#7092c0" d="M241.5,-143C241.5,-143 688,-143 688,-143 694,-143 700,-149 700,-155 700,-155 700,-324 700,-324 700,-330 694,-336 688,-336 688,-336 241.5,-336 241.5,-336 235.5,-336 229.5,-330 229.5,-324 229.5,-324 229.5,-155 229.5,-155 229.5,-149 235.5,-143 241.5,-143"/>
|
||||
<text text-anchor="middle" x="361" y="-322.4" font-family="sans-serif" font-size="12.00">  »Proactor« thread  —  playVideo() loop  </text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_gui</title>
|
||||
<path fill="#eefaee" stroke="#6bab6b" d="M205,-8C205,-8 700,-8 700,-8 706,-8 712,-14 712,-20 712,-20 712,-69 712,-69 712,-75 706,-81 700,-81 700,-81 205,-81 205,-81 199,-81 193,-75 193,-69 193,-69 193,-20 193,-20 193,-14 199,-8 205,-8"/>
|
||||
<text text-anchor="middle" x="258.5" y="-67.4" font-family="sans-serif" font-size="12.00">  GTK / GUI thread  </text>
|
||||
</g>
|
||||
<!-- file -->
|
||||
<g id="node1" class="node">
|
||||
<title>file</title>
|
||||
<path fill="#eeeeee" stroke="black" d="M101,-216.73C101,-218.53 78.37,-220 50.5,-220 22.63,-220 0,-218.53 0,-216.73 0,-216.73 0,-187.27 0,-187.27 0,-185.47 22.63,-184 50.5,-184 78.37,-184 101,-185.47 101,-187.27 101,-187.27 101,-216.73 101,-216.73"/>
|
||||
<path fill="none" stroke="black" d="M101,-216.73C101,-214.92 78.37,-213.45 50.5,-213.45 22.63,-213.45 0,-214.92 0,-216.73"/>
|
||||
<text text-anchor="middle" x="50.5" y="-199.2" font-family="sans-serif" font-size="11.00">demovideo.raw</text>
|
||||
</g>
|
||||
<!-- ring -->
|
||||
<g id="node4" class="node">
|
||||
<title>ring</title>
|
||||
<polygon fill="#ffffff" stroke="black" points="237.5,-152 237.5,-252 379.5,-252 379.5,-152 237.5,-152"/>
|
||||
<text text-anchor="middle" x="308.5" y="-239.2" font-family="sans-serif" font-size="11.00">ring buffers (RING_SIZ)</text>
|
||||
<polyline fill="none" stroke="black" points="237.5,-232 379.5,-232 "/>
|
||||
<text text-anchor="middle" x="308.5" y="-219.2" font-family="sans-serif" font-size="11.00">slot</text>
|
||||
<polyline fill="none" stroke="black" points="237.5,-212 379.5,-212 "/>
|
||||
<text text-anchor="middle" x="308.5" y="-199.2" font-family="sans-serif" font-size="11.00">slot</text>
|
||||
<polyline fill="none" stroke="black" points="237.5,-192 379.5,-192 "/>
|
||||
<text text-anchor="middle" x="308.5" y="-179.2" font-family="sans-serif" font-size="11.00">slot</text>
|
||||
<polyline fill="none" stroke="black" points="237.5,-172 379.5,-172 "/>
|
||||
<text text-anchor="middle" x="308.5" y="-159.2" font-family="sans-serif" font-size="11.00">…</text>
|
||||
</g>
|
||||
<!-- file->ring -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>file->ring</title>
|
||||
<path fill="none" stroke="black" d="M101.16,-202C136.89,-202 185.86,-202 227.12,-202"/>
|
||||
<polygon fill="black" stroke="black" points="219.5,-205.5 229.5,-202 219.5,-198.5 219.5,-205.5"/>
|
||||
<text text-anchor="middle" x="151" y="-205" font-family="sans-serif" font-size="10.00">io_uring read</text>
|
||||
</g>
|
||||
<!-- wait -->
|
||||
<g id="node2" class="node">
|
||||
<title>wait</title>
|
||||
<path fill="#ffffff" stroke="black" d="M680,-307C680,-307 582,-307 582,-307 576,-307 570,-301 570,-295 570,-295 570,-283 570,-283 570,-277 576,-271 582,-271 582,-271 680,-271 680,-271 686,-271 692,-277 692,-283 692,-283 692,-295 692,-295 692,-301 686,-307 680,-307"/>
|
||||
<text text-anchor="middle" x="631" y="-292.2" font-family="sans-serif" font-size="11.00">io_uring_wait_cqe()</text>
|
||||
<text text-anchor="middle" x="631" y="-280.2" font-family="sans-serif" font-size="11.00">(blocking)</text>
|
||||
</g>
|
||||
<!-- timer -->
|
||||
<g id="node3" class="node">
|
||||
<title>timer</title>
|
||||
<path fill="#ffedcc" stroke="black" d="M353,-307C353,-307 264,-307 264,-307 258,-307 252,-301 252,-295 252,-295 252,-283 252,-283 252,-277 258,-271 264,-271 264,-271 353,-271 353,-271 359,-271 365,-277 365,-283 365,-283 365,-295 365,-295 365,-301 359,-307 353,-307"/>
|
||||
<text text-anchor="middle" x="308.5" y="-292.2" font-family="sans-serif" font-size="11.00">frame-beat timer</text>
|
||||
<text text-anchor="middle" x="308.5" y="-280.2" font-family="sans-serif" font-size="11.00">20 ms · multishot</text>
|
||||
</g>
|
||||
<!-- timer->wait -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>timer->wait</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M365.33,-289C419.3,-289 501.26,-289 559.66,-289"/>
|
||||
<polygon fill="black" stroke="black" points="559.92,-292.5 569.92,-289 559.92,-285.5 559.92,-292.5"/>
|
||||
<text text-anchor="middle" x="487" y="-292" font-family="sans-serif" font-size="10.00">CQE (TICK_TAG)</text>
|
||||
</g>
|
||||
<!-- baton -->
|
||||
<g id="node7" class="node">
|
||||
<title>baton</title>
|
||||
<polygon fill="#e7d8ff" stroke="black" stroke-width="1.6" points="698.5,-131 563.5,-131 563.5,-95 698.5,-95 698.5,-131"/>
|
||||
<text text-anchor="middle" x="631" y="-116.2" font-family="sans-serif" font-size="11.00">toDisplay_</text>
|
||||
<text text-anchor="middle" x="631" y="-104.2" font-family="sans-serif" font-size="11.00">std::atomic<Buffer*></text>
|
||||
</g>
|
||||
<!-- ring->baton -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>ring->baton</title>
|
||||
<path fill="none" stroke="#5a2ca0" d="M379.84,-182.47C431.79,-168.04 502.39,-148.44 555.34,-133.73"/>
|
||||
<polygon fill="#5a2ca0" stroke="#5a2ca0" points="556.31,-137.09 565.01,-131.05 554.44,-130.35 556.31,-137.09"/>
|
||||
<text text-anchor="middle" x="487" y="-179" font-family="sans-serif" font-size="10.00" fill="#5a2ca0">publish</text>
|
||||
<text text-anchor="middle" x="487" y="-168" font-family="sans-serif" font-size="10.00" fill="#5a2ca0">store(release)</text>
|
||||
</g>
|
||||
<!-- disp -->
|
||||
<g id="node5" class="node">
|
||||
<title>disp</title>
|
||||
<path fill="#ffffff" stroke="black" d="M404,-52C404,-52 213,-52 213,-52 207,-52 201,-46 201,-40 201,-40 201,-28 201,-28 201,-22 207,-16 213,-16 213,-16 404,-16 404,-16 410,-16 416,-22 416,-28 416,-28 416,-40 416,-40 416,-46 410,-52 404,-52"/>
|
||||
<text text-anchor="middle" x="308.5" y="-37.2" font-family="sans-serif" font-size="11.00">EglDisplay::displayFrame()</text>
|
||||
<text text-anchor="middle" x="308.5" y="-25.2" font-family="sans-serif" font-size="11.00">retrieveFrame() / completedFrame()</text>
|
||||
</g>
|
||||
<!-- gpu -->
|
||||
<g id="node6" class="node">
|
||||
<title>gpu</title>
|
||||
<path fill="#ffffff" stroke="black" d="M692,-52C692,-52 570,-52 570,-52 564,-52 558,-46 558,-40 558,-40 558,-28 558,-28 558,-22 564,-16 570,-16 570,-16 692,-16 692,-16 698,-16 704,-22 704,-28 704,-28 704,-40 704,-40 704,-46 698,-52 692,-52"/>
|
||||
<text text-anchor="middle" x="631" y="-37.2" font-family="sans-serif" font-size="11.00">GPU texture</text>
|
||||
<text text-anchor="middle" x="631" y="-25.2" font-family="sans-serif" font-size="11.00">(glTexImage2D → draw)</text>
|
||||
</g>
|
||||
<!-- disp->gpu -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>disp->gpu</title>
|
||||
<path fill="none" stroke="black" d="M416.22,-34C458.94,-34 507.39,-34 547.35,-34"/>
|
||||
<polygon fill="black" stroke="black" points="547.58,-37.5 557.58,-34 547.58,-30.5 547.58,-37.5"/>
|
||||
<text text-anchor="middle" x="487" y="-37" font-family="sans-serif" font-size="10.00">upload + draw</text>
|
||||
</g>
|
||||
<!-- disp->baton -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>disp->baton</title>
|
||||
<path fill="none" stroke="#3a7a3a" stroke-dasharray="5,2" d="M341.45,-52.07C365.99,-65.08 401.13,-81.88 434,-91 472.45,-101.67 516.52,-107.18 553.11,-110.02"/>
|
||||
<polygon fill="#3a7a3a" stroke="#3a7a3a" points="553,-113.52 563.22,-110.76 553.5,-106.54 553,-113.52"/>
|
||||
<text text-anchor="middle" x="487" y="-122" font-family="sans-serif" font-size="10.00" fill="#3a7a3a">completedFrame</text>
|
||||
<text text-anchor="middle" x="487" y="-111" font-family="sans-serif" font-size="10.00" fill="#3a7a3a">store(nullptr, release)</text>
|
||||
</g>
|
||||
<!-- baton->disp -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>baton->disp</title>
|
||||
<path fill="none" stroke="#5a2ca0" d="M577.04,-94.93C570.45,-91.95 563.95,-88.64 558,-85 548.87,-79.42 549.69,-73.55 540,-69 519.39,-59.33 472.38,-51.4 426.16,-45.55"/>
|
||||
<polygon fill="#5a2ca0" stroke="#5a2ca0" points="426.36,-42.05 416.01,-44.29 425.5,-48.99 426.36,-42.05"/>
|
||||
<text text-anchor="middle" x="487" y="-83" font-family="sans-serif" font-size="10.00" fill="#5a2ca0">retrieveFrame</text>
|
||||
<text text-anchor="middle" x="487" y="-72" font-family="sans-serif" font-size="10.00" fill="#5a2ca0">load(acquire)</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<svg
|
||||
width="15.78cm"
|
||||
height="10.38cm"
|
||||
viewBox="0 0 760.11559 500"
|
||||
version="1.1"
|
||||
id="svg29"
|
||||
sodipodi:docname="thread-handoff.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="../handoff.svg"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<title
|
||||
id="title33">Proactor data handoff</title>
|
||||
<defs
|
||||
id="defs29">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker29"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Dart arrow"
|
||||
markerWidth="2"
|
||||
markerHeight="2"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
transform="scale(-0.5)"
|
||||
id="path29" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview29"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="pt"
|
||||
inkscape:zoom="1.3948107"
|
||||
inkscape:cx="323.34138"
|
||||
inkscape:cy="234.44042"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1061"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg29" />
|
||||
<g
|
||||
id="clust1"
|
||||
class="cluster"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-67.271267,489.33908)">
|
||||
<title
|
||||
id="title2">cluster_proactor</title>
|
||||
<path
|
||||
fill="#eef4ff"
|
||||
stroke="#7092c0"
|
||||
d="m 241.5,-143 c 0,0 446.5,0 446.5,0 6,0 12,-6 12,-12 0,0 0,-169 0,-169 0,-6 -6,-12 -12,-12 0,0 -446.5,0 -446.5,0 -6,0 -12,6 -12,12 0,0 0,169 0,169 0,6 6,12 12,12"
|
||||
id="path2"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="361"
|
||||
y="-322.39999"
|
||||
font-family="sans-serif"
|
||||
font-size="12px"
|
||||
id="text2"
|
||||
style="font-size:13.257px;stroke-width:0.780137"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.257px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans'"
|
||||
id="tspan29"> »Proactor« thread — playVideo()</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="clust2"
|
||||
class="cluster"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-81.150069,489.33908)">
|
||||
<title
|
||||
id="title3">cluster_gui</title>
|
||||
<path
|
||||
fill="#eefaee"
|
||||
stroke="#6bab6b"
|
||||
d="m 205,-8 c 0,0 495,0 495,0 6,0 12,-6 12,-12 0,0 0,-49 0,-49 0,-6 -6,-12 -12,-12 0,0 -495,0 -495,0 -6,0 -12,6 -12,12 0,0 0,49 0,49 0,6 6,12 12,12"
|
||||
id="path3"
|
||||
style="stroke-width:0.780137;fill:#d7faf7;fill-opacity:1" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="272.72073"
|
||||
y="-68.043182"
|
||||
font-family="sans-serif"
|
||||
font-size="12px"
|
||||
id="text3"
|
||||
style="font-size:13.257px;stroke-width:0.780137"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans Bold'"
|
||||
id="tspan31"> GTK / GUI thread </tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="node1"
|
||||
class="node"
|
||||
style="stroke-width:1.03353"
|
||||
transform="matrix(0.85777003,0,0,1.0913897,4.0126228,416.88882)">
|
||||
<title
|
||||
id="title4">file</title>
|
||||
<path
|
||||
fill="#eee"
|
||||
stroke="black"
|
||||
d="m 101,-216.73 c 0,-1.8 -22.63,-3.27 -50.5,-3.27 -27.87,0 -50.5,1.47 -50.5,3.27 0,0 0,29.46 0,29.46 0,1.8 22.63,3.27 50.5,3.27 27.87,0 50.5,-1.47 50.5,-3.27 0,0 0,-29.46 0,-29.46"
|
||||
id="path4"
|
||||
style="stroke-width:1.03353" />
|
||||
<path
|
||||
fill="none"
|
||||
stroke="black"
|
||||
d="m 101,-216.73 c 0,1.81 -22.63,3.28 -50.5,3.28 -27.87,0 -50.5,-1.47 -50.5,-3.28"
|
||||
id="path5"
|
||||
style="stroke-width:1.03353" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="50.5"
|
||||
y="-199.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text5"
|
||||
style="stroke-width:1.03353">demovideo.raw</text>
|
||||
</g>
|
||||
<g
|
||||
id="node4"
|
||||
class="node"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-67.271267,489.33908)">
|
||||
<title
|
||||
id="title5">ring</title>
|
||||
<polygon
|
||||
fill="white"
|
||||
stroke="black"
|
||||
points="237.5,-252 379.5,-252 379.5,-152 237.5,-152 "
|
||||
id="polygon5"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-239.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text6"
|
||||
style="stroke-width:0.780137">ring buffers (RING_SIZ)</text>
|
||||
<polyline
|
||||
fill="none"
|
||||
stroke="black"
|
||||
points="237.5,-232 379.5,-232 "
|
||||
id="polyline6"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-219.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text7"
|
||||
style="stroke-width:0.780137">slot</text>
|
||||
<polyline
|
||||
fill="none"
|
||||
stroke="black"
|
||||
points="237.5,-212 379.5,-212 "
|
||||
id="polyline7"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-199.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text8"
|
||||
style="stroke-width:0.780137">slot</text>
|
||||
<polyline
|
||||
fill="none"
|
||||
stroke="black"
|
||||
points="237.5,-192 379.5,-192 "
|
||||
id="polyline8"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-179.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text9"
|
||||
style="stroke-width:0.780137">slot</text>
|
||||
<polyline
|
||||
fill="none"
|
||||
stroke="black"
|
||||
points="237.5,-172 379.5,-172 "
|
||||
id="polyline9"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-159.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text10"
|
||||
style="stroke-width:0.780137">…</text>
|
||||
</g>
|
||||
<path
|
||||
fill="none"
|
||||
stroke="black"
|
||||
d="M 90.647396,202.36738 H 193.58071"
|
||||
id="path10"
|
||||
style="stroke-width:1;marker-end:url(#marker29)"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="162.54471"
|
||||
y="178.74663"
|
||||
font-family="sans-serif"
|
||||
font-size="12.8183px"
|
||||
id="text11"
|
||||
style="stroke-width:1"
|
||||
transform="scale(0.90228035,1.108303)">io_uring read</text>
|
||||
<g
|
||||
id="node2"
|
||||
class="node"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-67.271267,489.33908)">
|
||||
<title
|
||||
id="title11">wait</title>
|
||||
<path
|
||||
fill="white"
|
||||
stroke="black"
|
||||
d="m 680,-307 c 0,0 -98,0 -98,0 -6,0 -12,6 -12,12 0,0 0,12 0,12 0,6 6,12 12,12 0,0 98,0 98,0 6,0 12,-6 12,-12 0,0 0,-12 0,-12 0,-6 -6,-12 -12,-12"
|
||||
id="path11"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="631"
|
||||
y="-292.20001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text12"
|
||||
style="stroke-width:0.780137">io_uring_wait_cqe()</text>
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="631"
|
||||
y="-280.20001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text13"
|
||||
style="stroke-width:0.780137">(blocking)</text>
|
||||
</g>
|
||||
<g
|
||||
id="node3"
|
||||
class="node"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-67.271267,489.33908)">
|
||||
<title
|
||||
id="title13">timer</title>
|
||||
<path
|
||||
fill="#ffedcc"
|
||||
stroke="black"
|
||||
d="m 353,-307 c 0,0 -89,0 -89,0 -6,0 -12,6 -12,12 0,0 0,12 0,12 0,6 6,12 12,12 0,0 89,0 89,0 6,0 12,-6 12,-12 0,0 0,-12 0,-12 0,-6 -6,-12 -12,-12"
|
||||
id="path13"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-292.20001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text14"
|
||||
style="stroke-width:0.780137">frame-beat timer</text>
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-280.20001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text15"
|
||||
style="stroke-width:0.780137">20 ms · multishot</text>
|
||||
</g>
|
||||
<g
|
||||
id="edge2"
|
||||
class="edge"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-67.271267,489.33908)">
|
||||
<title
|
||||
id="title15">timer->wait</title>
|
||||
<path
|
||||
fill="none"
|
||||
stroke="black"
|
||||
stroke-dasharray="0.780137, 3.90068"
|
||||
d="m 365.33,-289 c 53.97,0 135.93,0 194.33,0"
|
||||
id="path15"
|
||||
style="stroke-width:0.780137" />
|
||||
<polygon
|
||||
fill="black"
|
||||
stroke="black"
|
||||
points="559.92,-285.5 559.92,-292.5 569.92,-289 "
|
||||
id="polygon15"
|
||||
style="stroke-width:0.780137" />
|
||||
</g>
|
||||
<g
|
||||
id="node7"
|
||||
class="node"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-67.271267,489.33908)">
|
||||
<title
|
||||
id="title16">baton</title>
|
||||
<polygon
|
||||
fill="#e7d8ff"
|
||||
stroke="black"
|
||||
stroke-width="1.24822"
|
||||
points="563.5,-131 563.5,-95 698.5,-95 698.5,-131 "
|
||||
id="polygon16"
|
||||
style="fill:#cdcaff;fill-opacity:1" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="631"
|
||||
y="-116.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text17"
|
||||
style="stroke-width:0.780137;stroke:#241bab;stroke-opacity:1">toDisplay_</text>
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="631"
|
||||
y="-104.2"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text18"
|
||||
style="stroke-width:0.780137;stroke:#241bab;stroke-opacity:1">std::atomic<Buffer*></text>
|
||||
</g>
|
||||
<g
|
||||
id="node5"
|
||||
class="node"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,258.4525,489.33908)">
|
||||
<title
|
||||
id="title20">disp</title>
|
||||
<path
|
||||
fill="white"
|
||||
stroke="black"
|
||||
d="m 404,-52 c 0,0 -191,0 -191,0 -6,0 -12,6 -12,12 0,0 0,12 0,12 0,6 6,12 12,12 0,0 191,0 191,0 6,0 12,-6 12,-12 0,0 0,-12 0,-12 0,-6 -6,-12 -12,-12"
|
||||
id="path20"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-37.200001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text21"
|
||||
style="stroke-width:0.780137">EglDisplay::displayFrame()</text>
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="308.5"
|
||||
y="-25.200001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text22"
|
||||
style="stroke-width:0.780137">retrieveFrame() / completedFrame()</text>
|
||||
</g>
|
||||
<g
|
||||
id="node6"
|
||||
class="node"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-493.129,489.33908)">
|
||||
<title
|
||||
id="title22">gpu</title>
|
||||
<path
|
||||
fill="white"
|
||||
stroke="black"
|
||||
d="m 692,-52 c 0,0 -122,0 -122,0 -6,0 -12,6 -12,12 0,0 0,12 0,12 0,6 6,12 12,12 0,0 122,0 122,0 6,0 12,-6 12,-12 0,0 0,-12 0,-12 0,-6 -6,-12 -12,-12"
|
||||
id="path22"
|
||||
style="stroke-width:0.780137" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="631"
|
||||
y="-37.200001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text23"
|
||||
style="stroke-width:0.780137">GPU texture</text>
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="631"
|
||||
y="-25.200001"
|
||||
font-family="sans-serif"
|
||||
font-size="11px"
|
||||
id="text24"
|
||||
style="stroke-width:0.780137">(glTexImage2D → draw)</text>
|
||||
</g>
|
||||
<g
|
||||
id="edge5"
|
||||
class="edge"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(1.1565668,0,0,1.420652,-157.48563,489.33908)">
|
||||
<title
|
||||
id="title24">disp->gpu</title>
|
||||
<path
|
||||
fill="none"
|
||||
stroke="black"
|
||||
d="m 558.76077,-34 c -42.72,0 -91.17,0 -131.13,0"
|
||||
id="path24"
|
||||
style="stroke-width:0.780137" />
|
||||
<polygon
|
||||
fill="black"
|
||||
stroke="black"
|
||||
points="557.58,-34 547.58,-30.5 547.58,-37.5 "
|
||||
id="polygon24"
|
||||
style="stroke-width:0.780137"
|
||||
transform="matrix(-1,0,0,1,974.98077,0)" />
|
||||
<text
|
||||
text-anchor="middle"
|
||||
x="487"
|
||||
y="-37"
|
||||
font-family="sans-serif"
|
||||
font-size="10px"
|
||||
id="text25"
|
||||
style="stroke-width:0.780137">upload + draw</text>
|
||||
</g>
|
||||
<metadata
|
||||
id="metadata33">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-nc-sa/4.0/" />
|
||||
<dc:title>Proactor data handoff</dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Ichthyostega</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-nc-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:prohibits
|
||||
rdf:resource="http://creativecommons.org/ns#CommercialUse" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 14 KiB |
Loading…
Reference in a new issue