[PATCH v2 5/5] Documentation/gpu: Add documentation about ring buffer
Alex Deucher
alexdeucher at gmail.com
Mon Aug 25 15:58:54 UTC 2025
On Sun, Aug 24, 2025 at 7:58 PM Rodrigo Siqueira <siqueira at igalia.com> wrote:
>
> AMDGPU heavily relies on ring buffers to manage its components; as a
> result, it has an elaborate mechanism of operation with multiple details
> around it. This commit introduces new documentation on ring buffers,
> detailing their management and expanding the explanation of Enforce
> isolation. Finally, this commit also adds the documentation available in
> the amdgpu_ring.c file to it.
>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Timur Kristóf <timur.kristof at gmail.com>
> Signed-off-by: Rodrigo Siqueira <siqueira at igalia.com>
> ---
> .../gpu/amdgpu/enforce_isolation.svg | 707 +++++++
> Documentation/gpu/amdgpu/gfx_pipeline_seq.svg | 413 +++++
> Documentation/gpu/amdgpu/index.rst | 1 +
> .../gpu/amdgpu/no_enforce_isolation.svg | 673 +++++++
> Documentation/gpu/amdgpu/ring-buffer.rst | 94 +
> Documentation/gpu/amdgpu/ring_buffers.svg | 1633 +++++++++++++++++
> 6 files changed, 3521 insertions(+)
> create mode 100644 Documentation/gpu/amdgpu/enforce_isolation.svg
> create mode 100644 Documentation/gpu/amdgpu/gfx_pipeline_seq.svg
> create mode 100644 Documentation/gpu/amdgpu/no_enforce_isolation.svg
> create mode 100644 Documentation/gpu/amdgpu/ring-buffer.rst
> create mode 100644 Documentation/gpu/amdgpu/ring_buffers.svg
>
Do you have links to the images?
> diff --git a/Documentation/gpu/amdgpu/enforce_isolation.svg b/Documentation/gpu/amdgpu/enforce_isolation.svg
> new file mode 100644
> index 000000000000..b224615e1611
> --- /dev/null
> +++ b/Documentation/gpu/amdgpu/enforce_isolation.svg
> @@ -0,0 +1,707 @@
> +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
> +<!-- Created with Inkscape (http://www.inkscape.org/) -->
> +
> +<svg
> + width="68.949203mm"
> + height="86.909332mm"
> + viewBox="0 0 68.949202 86.909332"
> + version="1.1"
> + id="svg1"
> + inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
> + sodipodi:docname="enforce_isolation.svg"
> + 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">
> + <sodipodi:namedview
> + id="namedview1"
> + pagecolor="#ffffff"
> + bordercolor="#000000"
> + borderopacity="0.25"
> + inkscape:showpageshadow="2"
> + inkscape:pageopacity="0.0"
> + inkscape:pagecheckerboard="0"
> + inkscape:deskcolor="#d1d1d1"
> + inkscape:document-units="mm"
> + inkscape:zoom="1.7877362"
> + inkscape:cx="291.15034"
> + inkscape:cy="332.54347"
> + inkscape:window-width="3072"
> + inkscape:window-height="1651"
> + inkscape:window-x="0"
> + inkscape:window-y="0"
> + inkscape:window-maximized="1"
> + inkscape:current-layer="g61" />
> + <defs
> + id="defs1">
> + <marker
> + style="overflow:visible"
> + id="ArrowWideHeavy"
> + refX="0"
> + refY="0"
> + orient="auto-start-reverse"
> + inkscape:stockid="Wide, heavy arrow"
> + markerWidth="1"
> + markerHeight="1"
> + 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 1,0 -3,3 h -2 l 3,-3 -3,-3 h 2 z"
> + id="path3" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="Dot"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Dot"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.5)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 5,0 C 5,2.76 2.76,5 0,5 -2.76,5 -5,2.76 -5,0 c 0,-2.76 2.3,-5 5,-5 2.76,0 5,2.24 5,5 z"
> + sodipodi:nodetypes="sssss"
> + id="path98" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="marker99"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Dot"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.5)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 5,0 C 5,2.76 2.76,5 0,5 -2.76,5 -5,2.76 -5,0 c 0,-2.76 2.3,-5 5,-5 2.76,0 5,2.24 5,5 z"
> + sodipodi:nodetypes="sssss"
> + id="path99" />
> + </marker>
> + </defs>
> + <g
> + inkscape:label="Layer 1"
> + inkscape:groupmode="layer"
> + id="layer1"
> + transform="translate(72.009598,0.94510132)">
> + <g
> + id="g61">
> + <rect
> + style="fill:#ffffff;stroke:none;stroke-width:0.25654;stroke-linecap:square;stroke-dasharray:none"
> + id="rect6"
> + width="68.949203"
> + height="86.909332"
> + x="-72.009598"
> + y="-0.94510132" />
> + <g
> + id="g15"
> + transform="matrix(0.42247861,0,0,0.42247861,-70.575576,-29.756289)">
> + <path
> + id="path33"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g14">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path34"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path35"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path36"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path37"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path38"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path39"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path40"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path41"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path42"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path43"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path44-1"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path45-8"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <rect
> + style="fill:#afe9c6;stroke:#16502d;stroke-width:0.257104;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + id="rect80"
> + width="25.076588"
> + height="10.493422"
> + x="-71.362038"
> + y="74.63459"
> + ry="1.4529352" />
> + <rect
> + style="fill:#80e5ff;stroke:#00aad4;stroke-width:0.257104;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + id="rect81"
> + width="32.714355"
> + height="10.436013"
> + x="-40.481403"
> + y="74.663292"
> + ry="1.4449863" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.53042px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-59.013123"
> + y="82.212669"
> + id="text14-7"><tspan
> + sodipodi:role="line"
> + x="-59.013123"
> + y="82.212669"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.53042px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
> + id="tspan14-7">GFX</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.53042px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-24.387218"
> + y="81.46167"
> + id="text95"><tspan
> + sodipodi:role="line"
> + x="-24.387218"
> + y="81.46167"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.53042px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
> + id="tspan95">Compute</tspan></text>
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.385656;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -58.079264,73.89605 V 65.448872"
> + id="path127"
> + sodipodi:nodetypes="cc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.90242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-61.752651"
> + y="3.1995225"
> + id="text112"><tspan
> + sodipodi:role="line"
> + x="-61.752651"
> + y="3.1995225"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.90242px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
> + id="tspan112">Processes</tspan></text>
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:0.247306;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:1.48383, 1.48383;stroke-dashoffset:0"
> + id="rect113"
> + width="64.703476"
> + height="19.562067"
> + x="-68.52655"
> + y="4.468956"
> + ry="1.6976216" />
> + <g
> + id="g84"
> + transform="matrix(0.25710378,0,0,0.25710378,0.68647434,8.7899633)">
> + <g
> + id="g83">
> + <circle
> + style="fill:#ffffff;stroke:#ff00ff;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle137"
> + cx="-225.65012"
> + cy="20.747513"
> + r="30.822298" />
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-225.65012"
> + y="26.8181"
> + id="text113"><tspan
> + sodipodi:role="line"
> + x="-225.65012"
> + y="26.8181"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.400612"
> + id="tspan113">A</tspan></text>
> + </g>
> + <g
> + id="g85"
> + transform="matrix(0.25710378,0,0,0.25710378,20.618429,8.7899633)">
> + <circle
> + style="fill:#ffffff;stroke:#ff9955;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle112"
> + cx="-207.94376"
> + cy="20.747513"
> + r="30.822298" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-208.25702"
> + y="26.792702"
> + id="text114"><tspan
> + sodipodi:role="line"
> + x="-208.25702"
> + y="26.792702"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan114">B</tspan></text>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-56.126556"
> + y="47.212101"
> + id="text6"><tspan
> + sodipodi:role="line"
> + x="-56.126556"
> + y="47.212101"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.102999"
> + id="tspan6">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.26752px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-57.861526"
> + y="53.902462"
> + id="text136"><tspan
> + sodipodi:role="line"
> + x="-57.861526"
> + y="53.902462"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.26752px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
> + id="tspan136">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="-57.861526"
> + y="56.736862"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.26752px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
> + id="tspan137">Buffer</tspan></text>
> + <g
> + id="g80"
> + transform="matrix(0.42247861,0,0,0.42247861,-37.21188,-29.756289)">
> + <path
> + id="path67"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g79">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path68"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path69"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path70"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path71"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path72"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path73"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path74"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path75"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path76"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path77"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path78"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path79"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.26752px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-24.497828"
> + y="53.902462"
> + id="text81"><tspan
> + sodipodi:role="line"
> + x="-24.497828"
> + y="53.902462"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.26752px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
> + id="tspan80">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="-24.497828"
> + y="56.736862"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.26752px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
> + id="tspan81">Buffer</tspan></text>
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.385656;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -24.338879,73.89605 V 65.448872"
> + id="path81"
> + sodipodi:nodetypes="cc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-52.574932"
> + y="48.826473"
> + id="text82"><tspan
> + sodipodi:role="line"
> + x="-52.574932"
> + y="48.826473"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.102999"
> + id="tspan82">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-50.045757"
> + y="52.862404"
> + id="text83"><tspan
> + sodipodi:role="line"
> + x="-50.045757"
> + y="52.862404"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.102999"
> + id="tspan83">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-31.907158"
> + y="58.226768"
> + id="text83-59"><tspan
> + sodipodi:role="line"
> + x="-31.907158"
> + y="58.226768"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.102999"
> + id="tspan83-7">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-32.436516"
> + y="53.169308"
> + id="text83-59-3"><tspan
> + sodipodi:role="line"
> + x="-32.436516"
> + y="53.169308"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.102999"
> + id="tspan83-7-6">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-65.422112"
> + y="57.972916"
> + id="text83-7"><tspan
> + sodipodi:role="line"
> + x="-65.422112"
> + y="57.972916"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.102999"
> + id="tspan83-8">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-65.713165"
> + y="52.732723"
> + id="text83-7-4"><tspan
> + sodipodi:role="line"
> + x="-65.713165"
> + y="52.732723"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.102999"
> + id="tspan83-8-3">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-52.897129"
> + y="61.668709"
> + id="text83-5"><tspan
> + sodipodi:role="line"
> + x="-52.897129"
> + y="61.668709"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.102999"
> + id="tspan83-4">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-19.174068"
> + y="49.045818"
> + id="text83-5-9"><tspan
> + sodipodi:role="line"
> + x="-19.174068"
> + y="49.045818"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.102999"
> + id="tspan83-4-2">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-16.531792"
> + y="53.259804"
> + id="text83-5-9-9"><tspan
> + sodipodi:role="line"
> + x="-16.531792"
> + y="53.259804"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.102999"
> + id="tspan83-4-2-5">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-19.325029"
> + y="61.488995"
> + id="text83-5-9-9-7"><tspan
> + sodipodi:role="line"
> + x="-19.325029"
> + y="61.488995"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.102999"
> + id="tspan83-4-2-5-2">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-22.869593"
> + y="63.231686"
> + id="text83-5-9-9-7-0"><tspan
> + sodipodi:role="line"
> + x="-22.869593"
> + y="63.231686"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.102999"
> + id="tspan83-4-2-5-2-6">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-26.235374"
> + y="63.331181"
> + id="text83-5-9-9-7-0-4"><tspan
> + sodipodi:role="line"
> + x="-26.235374"
> + y="63.331181"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.102999"
> + id="tspan83-4-2-5-2-6-9">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-56.235538"
> + y="63.072704"
> + id="text83-5-6"><tspan
> + sodipodi:role="line"
> + x="-56.235538"
> + y="63.072704"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.102999"
> + id="tspan83-4-9">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.17681px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.102999"
> + x="-59.697765"
> + y="63.066635"
> + id="text83-5-6-5"><tspan
> + sodipodi:role="line"
> + x="-59.697765"
> + y="63.066635"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.17681px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.102999"
> + id="tspan83-4-9-2">C</tspan></text>
> + <circle
> + style="fill:#ffcc00;stroke:#00d455;stroke-width:0.213261;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="path83"
> + cx="-50.145481"
> + cy="57.387428"
> + r="1.0712636" />
> + <circle
> + style="fill:#ffcc00;stroke:#00d455;stroke-width:0.213261;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="path83-7"
> + cx="-16.886913"
> + cy="57.596024"
> + r="1.0712636" />
> + <circle
> + style="fill:#ffcc00;stroke:#00d455;stroke-width:0.213261;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="path83-7-7"
> + cx="-29.53648"
> + cy="60.832634"
> + r="1.0712636" />
> + <circle
> + style="fill:#ffcc00;stroke:#00d455;stroke-width:0.213261;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="path83-7-7-9"
> + cx="-29.751556"
> + cy="48.260994"
> + r="1.0712636" />
> + <circle
> + style="fill:#ffcc00;stroke:#00d455;stroke-width:0.213261;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="path83-4"
> + cx="-63.051891"
> + cy="60.73439"
> + r="1.0712636" />
> + <circle
> + style="fill:#ffcc00;stroke:#00d455;stroke-width:0.213261;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="path83-4-2"
> + cx="-63.022129"
> + cy="48.24374"
> + r="1.0712636" />
> + <g
> + id="g86"
> + transform="matrix(0.25710378,0,0,0.25710378,17.422136,8.7899633)">
> + <circle
> + style="fill:#ffffff;stroke:#ff0000;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle84"
> + cx="-121.9205"
> + cy="20.747513"
> + r="30.822298" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-122.11524"
> + y="26.792702"
> + id="text84"><tspan
> + sodipodi:role="line"
> + x="-122.11524"
> + y="26.792702"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.400612"
> + id="tspan84">C</tspan></text>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-size:2.17681px;font-family:'Linux Libertine O';-inkscape-font-specification:'Linux Libertine O';text-align:start;letter-spacing:1.26323px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:none;stroke:#000000;stroke-width:0.257104;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + x="-140.03215"
> + y="26.074423"
> + id="text86"><tspan
> + sodipodi:role="line"
> + id="tspan86"
> + style="stroke-width:0.257104"
> + x="-140.03215"
> + y="26.074423" /></text>
> + <g
> + id="g90"
> + transform="matrix(0.25710378,0,0,0.25710378,18.175509,7.82134)">
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="rect86"
> + width="92.604057"
> + height="26.883123"
> + x="-338.30258"
> + y="93.635468" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:8.81944px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-291.13989"
> + y="110.58046"
> + id="text88"><tspan
> + sodipodi:role="line"
> + x="-291.13989"
> + y="110.58046"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.81944px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan88">Enforce Isolation</tspan></text>
> + </g>
> + <g
> + id="g89"
> + transform="matrix(0.25710378,0,0,0.25710378,18.606009,7.82134)">
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="rect89"
> + width="119.67937"
> + height="26.749132"
> + x="-219.35185"
> + y="93.702461" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:8.81944px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-159.57832"
> + y="110.40636"
> + id="text89"><tspan
> + sodipodi:role="line"
> + x="-159.57832"
> + y="110.40636"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.81944px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan89">Enforce Isolation</tspan></text>
> + </g>
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.385656;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -57.807162,43.759556 V 39.878518"
> + id="path90"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.385656;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -24.512426,43.759556 V 39.878518"
> + id="path91"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#ff00ff;stroke-width:0.257104;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="m -57.329023,22.418572 v 9.208373"
> + id="path1" />
> + <path
> + style="fill:#ff00ff;stroke:#ff9955;stroke-width:0.257104;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="m -32.844695,22.418572 v 9.208373"
> + id="path2" />
> + <path
> + style="fill:#ff00ff;stroke:#ff0000;stroke-width:0.257104;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="m -13.924085,22.418572 v 9.208373"
> + id="path4" />
> + <path
> + style="fill:none;stroke:#ff00ff;stroke-width:0.257104;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="m -57.329023,22.418572 v 5.174952 h 20.852017 v 4.033421"
> + id="path5"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#ff0000;stroke-width:0.257104;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="m -13.924085,22.418572 v 3.652908 h -34.777483 v 5.555465"
> + id="path6"
> + sodipodi:nodetypes="cccc" />
> + </g>
> + </g>
> +</svg>
> diff --git a/Documentation/gpu/amdgpu/gfx_pipeline_seq.svg b/Documentation/gpu/amdgpu/gfx_pipeline_seq.svg
> new file mode 100644
> index 000000000000..2f2c8fa98059
> --- /dev/null
> +++ b/Documentation/gpu/amdgpu/gfx_pipeline_seq.svg
> @@ -0,0 +1,413 @@
> +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
> +<!-- Created with Inkscape (http://www.inkscape.org/) -->
> +
> +<svg
> + width="141.76276mm"
> + height="51.906979mm"
> + viewBox="0 0 141.76275 51.906979"
> + version="1.1"
> + id="svg1"
> + inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
> + sodipodi:docname="gfx_pipeline_seq.svg"
> + 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">
> + <sodipodi:namedview
> + id="namedview1"
> + pagecolor="#ffffff"
> + bordercolor="#000000"
> + borderopacity="0.25"
> + inkscape:showpageshadow="2"
> + inkscape:pageopacity="0.0"
> + inkscape:pagecheckerboard="0"
> + inkscape:deskcolor="#d1d1d1"
> + inkscape:document-units="mm"
> + inkscape:zoom="1.2641204"
> + inkscape:cx="470.28748"
> + inkscape:cy="63.680643"
> + inkscape:window-width="3072"
> + inkscape:window-height="1651"
> + inkscape:window-x="0"
> + inkscape:window-y="0"
> + inkscape:window-maximized="1"
> + inkscape:current-layer="layer1" />
> + <defs
> + id="defs1">
> + <marker
> + style="overflow:visible"
> + id="ArrowWideHeavy"
> + refX="0"
> + refY="0"
> + orient="auto-start-reverse"
> + inkscape:stockid="Wide, heavy arrow"
> + markerWidth="1"
> + markerHeight="1"
> + 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 1,0 -3,3 h -2 l 3,-3 -3,-3 h 2 z"
> + id="path3" />
> + </marker>
> + </defs>
> + <g
> + inkscape:label="Layer 1"
> + inkscape:groupmode="layer"
> + id="layer1"
> + transform="translate(23.062206,-30.75877)">
> + <rect
> + style="fill:#ffffff;stroke:none;stroke-width:0.694678;stroke-linecap:square;stroke-dasharray:4.16805, 4.16805"
> + id="rect1"
> + width="141.76276"
> + height="51.906979"
> + x="-23.062206"
> + y="30.75877" />
> + <g
> + id="g28"
> + transform="matrix(1.0835493,0,0,1.0835493,-30.079831,-159.17628)">
> + <path
> + id="path18"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g27">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path19"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path20"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path21"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path22"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path23"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path24"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path25"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path26"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path27"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path28"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path29"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path30"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:3.92107px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.434083"
> + x="23.133495"
> + y="52.750404"
> + id="text24"><tspan
> + sodipodi:role="line"
> + x="23.133495"
> + y="52.750404"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:3.92107px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.434083"
> + id="tspan24">IB<tspan
> + style="font-size:3.92107px;baseline-shift:sub;fill:#ff9955;stroke-width:0.434083"
> + id="tspan27">b</tspan></tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.88054px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.434083"
> + x="2.4917324"
> + y="55.12072"
> + id="text139"><tspan
> + sodipodi:role="line"
> + x="2.4917324"
> + y="55.12072"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.88054px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.434083"
> + id="tspan138">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="2.4917324"
> + y="63.721394"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.88054px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.434083"
> + id="tspan139">Buffer</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:3.92107px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.434083"
> + x="22.115709"
> + y="65.117416"
> + id="text18"><tspan
> + sodipodi:role="line"
> + x="22.115709"
> + y="65.117416"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:3.92107px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#87decd;stroke-width:0.434083"
> + id="tspan18">IB<tspan
> + style="font-size:3.92107px;baseline-shift:sub;fill:#87decd;stroke-width:0.434083"
> + id="tspan17">c</tspan></tspan></text>
> + <g
> + id="g62"
> + transform="matrix(0.69467788,0,0,0.69467788,-104.6214,-57.027324)">
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="221.50526"
> + y="173.96935"
> + id="text48"><tspan
> + sodipodi:role="line"
> + x="221.50526"
> + y="173.96935"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#37abc8;stroke-width:0.400612"
> + id="tspan48">SX</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="238.1783"
> + y="173.96935"
> + id="text49"><tspan
> + sodipodi:role="line"
> + x="238.1783"
> + y="173.96935"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#37abc8;stroke-width:0.400612"
> + id="tspan49">GE</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="255.66414"
> + y="173.96935"
> + id="text50"><tspan
> + sodipodi:role="line"
> + x="255.66414"
> + y="173.96935"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#37abc8;stroke-width:0.400612"
> + id="tspan50">SPI</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="273.01663"
> + y="173.96935"
> + id="text51"><tspan
> + sodipodi:role="line"
> + x="273.01663"
> + y="173.96935"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan51">SC</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="289.11816"
> + y="173.97888"
> + id="text52"><tspan
> + sodipodi:role="line"
> + x="289.11816"
> + y="173.97888"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan52">PA</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="311.40778"
> + y="174.08365"
> + id="text53"><tspan
> + sodipodi:role="line"
> + x="311.40778"
> + y="174.08365"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff2a2a;stroke-width:0.400612"
> + id="tspan53">Cache</tspan></text>
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.529167;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 226.31089,171.70241 h 6.95598"
> + id="path53"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.529167;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 242.81883,171.70241 h 6.95598"
> + id="path54"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.529167;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 261.37781,171.70241 h 6.95598"
> + id="path55"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.529167;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 277.50475,171.70241 h 6.95598"
> + id="path56"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.529167;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 294.08254,171.70241 h 6.95598"
> + id="path57"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.529167;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 189.90312,171.70241 h 26.34385"
> + id="path60"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.529167;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 311.60514,176.14239 v 9.61994 H 184.98772"
> + id="path61"
> + sodipodi:nodetypes="ccc" />
> + </g>
> + <path
> + style="fill:#37c871;stroke:#00d455;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + d="m 40.698106,46.362333 4.844663,13.377322"
> + id="path62"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#37c871;stroke:#00d455;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + d="m 52.62426,46.362333 4.844663,13.377322"
> + id="path63"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#37c871;stroke:#00d455;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + d="m 64.55042,46.362333 4.844663,13.377322"
> + id="path64"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#37c871;stroke:#00d455;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + d="m 75.962512,46.362333 4.844663,13.377322"
> + id="path65"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#37c871;stroke:#00d455;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + d="m 87.580235,46.362333 4.844663,13.377322"
> + id="path66"
> + sodipodi:nodetypes="cc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:4.4112px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:0.278297"
> + x="37.018822"
> + y="45.730473"
> + id="text2"><tspan
> + sodipodi:role="line"
> + x="37.018822"
> + y="45.730473"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.4112px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#37abc8;stroke-width:0.278297"
> + id="tspan2">SX</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:4.4112px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:0.278297"
> + x="48.601212"
> + y="45.730473"
> + id="text3"><tspan
> + sodipodi:role="line"
> + x="48.601212"
> + y="45.730473"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.4112px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#37abc8;stroke-width:0.278297"
> + id="tspan3">GE</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:4.4112px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:0.278297"
> + x="60.748234"
> + y="45.730473"
> + id="text4"><tspan
> + sodipodi:role="line"
> + x="60.748234"
> + y="45.730473"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.4112px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#37abc8;stroke-width:0.278297"
> + id="tspan4">SPI</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:4.4112px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.278297"
> + x="72.802635"
> + y="45.730473"
> + id="text11"><tspan
> + sodipodi:role="line"
> + x="72.802635"
> + y="45.730473"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.4112px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.278297"
> + id="tspan11">SC</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:4.4112px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.278297"
> + x="83.988014"
> + y="45.737099"
> + id="text13"><tspan
> + sodipodi:role="line"
> + x="83.988014"
> + y="45.737099"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.4112px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.278297"
> + id="tspan13">PA</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:4.4112px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.278297"
> + x="99.472122"
> + y="45.809875"
> + id="text14"><tspan
> + sodipodi:role="line"
> + x="99.472122"
> + y="45.809875"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.4112px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff2a2a;stroke-width:0.278297"
> + id="tspan14">Cache</tspan></text>
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 40.357179,44.155689 h 4.832165"
> + id="path44"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 51.82488,44.155689 h 4.832165"
> + id="path45"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 64.717393,44.155689 h 4.832165"
> + id="path46"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 75.920422,44.155689 h 4.832165"
> + id="path47"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 87.436645,44.155689 h 4.832166"
> + id="path48"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 24.215741,44.155689 h 7.813702"
> + id="path58"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#000000;stroke-width:0.367601;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
> + d="m 100.63732,46.931607 v 6.68276 H 29.848557"
> + id="path59"
> + sodipodi:nodetypes="ccc" />
> + </g>
> +</svg>
> diff --git a/Documentation/gpu/amdgpu/index.rst b/Documentation/gpu/amdgpu/index.rst
> index bb2894b5edaf..1f0e8a38c625 100644
> --- a/Documentation/gpu/amdgpu/index.rst
> +++ b/Documentation/gpu/amdgpu/index.rst
> @@ -8,6 +8,7 @@ Next (GCN), Radeon DNA (RDNA), and Compute DNA (CDNA) architectures.
> .. toctree::
>
> driver-core
> + ring-buffer
> amd-hardware-list-info
> module-parameters
> gc/index
> diff --git a/Documentation/gpu/amdgpu/no_enforce_isolation.svg b/Documentation/gpu/amdgpu/no_enforce_isolation.svg
> new file mode 100644
> index 000000000000..38735447b005
> --- /dev/null
> +++ b/Documentation/gpu/amdgpu/no_enforce_isolation.svg
> @@ -0,0 +1,673 @@
> +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
> +<!-- Created with Inkscape (http://www.inkscape.org/) -->
> +
> +<svg
> + width="89.985634mm"
> + height="113.42541mm"
> + viewBox="0 0 89.985632 113.42541"
> + version="1.1"
> + id="svg1"
> + inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
> + sodipodi:docname="no_enforce_isolation.svg"
> + 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">
> + <sodipodi:namedview
> + id="namedview1"
> + pagecolor="#ffffff"
> + bordercolor="#000000"
> + borderopacity="0.25"
> + inkscape:showpageshadow="2"
> + inkscape:pageopacity="0.0"
> + inkscape:pagecheckerboard="0"
> + inkscape:deskcolor="#d1d1d1"
> + inkscape:document-units="mm"
> + inkscape:zoom="0.89386809"
> + inkscape:cx="649.42468"
> + inkscape:cy="584.53815"
> + inkscape:window-width="3072"
> + inkscape:window-height="1651"
> + inkscape:window-x="0"
> + inkscape:window-y="0"
> + inkscape:window-maximized="1"
> + inkscape:current-layer="g61" />
> + <defs
> + id="defs1">
> + <marker
> + style="overflow:visible"
> + id="ArrowWideHeavy"
> + refX="0"
> + refY="0"
> + orient="auto-start-reverse"
> + inkscape:stockid="Wide, heavy arrow"
> + markerWidth="1"
> + markerHeight="1"
> + 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 1,0 -3,3 h -2 l 3,-3 -3,-3 h 2 z"
> + id="path3" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="Dot"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Dot"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.5)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 5,0 C 5,2.76 2.76,5 0,5 -2.76,5 -5,2.76 -5,0 c 0,-2.76 2.3,-5 5,-5 2.76,0 5,2.24 5,5 z"
> + sodipodi:nodetypes="sssss"
> + id="path98" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="marker99"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Dot"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.5)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 5,0 C 5,2.76 2.76,5 0,5 -2.76,5 -5,2.76 -5,0 c 0,-2.76 2.3,-5 5,-5 2.76,0 5,2.24 5,5 z"
> + sodipodi:nodetypes="sssss"
> + id="path99" />
> + </marker>
> + </defs>
> + <g
> + inkscape:label="Layer 1"
> + inkscape:groupmode="layer"
> + id="layer1"
> + transform="translate(72.009598,0.94510132)">
> + <g
> + id="g61">
> + <rect
> + style="fill:#ffffff;stroke:none;stroke-width:0.334811;stroke-linecap:square;stroke-dasharray:none"
> + id="rect6"
> + width="89.985634"
> + height="113.42541"
> + x="-72.009598"
> + y="-0.94510132" />
> + <g
> + id="g15"
> + transform="matrix(0.55137703,0,0,0.55137703,-70.138056,-38.546595)">
> + <path
> + id="path33"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g14">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path34"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path35"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path36"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path37"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path38"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path39"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path40"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path41"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path42"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path43"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path44-1"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path45-8"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <rect
> + style="fill:#afe9c6;stroke:#16502d;stroke-width:0.335547;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + id="rect80"
> + width="32.727463"
> + height="13.694968"
> + x="-71.164459"
> + y="97.693985"
> + ry="1.8962265" />
> + <rect
> + style="fill:#80e5ff;stroke:#00aad4;stroke-width:0.335547;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + id="rect81"
> + width="42.695518"
> + height="13.620045"
> + x="-30.862137"
> + y="97.731461"
> + ry="1.8858525" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:8.52288px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-55.04789"
> + y="107.58414"
> + id="text14-7"><tspan
> + sodipodi:role="line"
> + x="-55.04789"
> + y="107.58414"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.52288px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan14-7">GFX</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:8.52288px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-9.8576069"
> + y="106.60402"
> + id="text95"><tspan
> + sodipodi:role="line"
> + x="-9.8576069"
> + y="106.60402"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.52288px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan95">Compute</tspan></text>
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.503319;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -53.829112,96.73012 V 85.705707"
> + id="path127"
> + sodipodi:nodetypes="cc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:3.78795px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-58.623249"
> + y="4.4640489"
> + id="text112"><tspan
> + sodipodi:role="line"
> + x="-58.623249"
> + y="4.4640489"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:3.78795px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan112">Processes</tspan></text>
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:0.322759;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:1.93655, 1.93655;stroke-dashoffset:0"
> + id="rect113"
> + width="84.444534"
> + height="25.53046"
> + x="-67.463867"
> + y="6.1207871"
> + ry="2.2155666" />
> + <g
> + id="g84"
> + transform="matrix(0.33554626,0,0,0.33554626,22.866079,11.760136)">
> + <g
> + id="g83">
> + <circle
> + style="fill:#ffffff;stroke:#ff00ff;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle137"
> + cx="-225.65012"
> + cy="20.747513"
> + r="30.822298" />
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-225.65012"
> + y="26.8181"
> + id="text113"><tspan
> + sodipodi:role="line"
> + x="-225.65012"
> + y="26.8181"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.400612"
> + id="tspan113">A</tspan></text>
> + </g>
> + <g
> + id="g85"
> + transform="matrix(0.33554626,0,0,0.33554626,48.879283,11.760136)">
> + <circle
> + style="fill:#ffffff;stroke:#ff9955;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle112"
> + cx="-207.94376"
> + cy="20.747513"
> + r="30.822298" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-208.25702"
> + y="26.792702"
> + id="text114"><tspan
> + sodipodi:role="line"
> + x="-208.25702"
> + y="26.792702"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan114">B</tspan></text>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-51.280636"
> + y="61.904888"
> + id="text6"><tspan
> + sodipodi:role="line"
> + x="-51.280636"
> + y="61.904888"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.134424"
> + id="tspan6">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.95933px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-53.544945"
> + y="70.636482"
> + id="text136"><tspan
> + sodipodi:role="line"
> + x="-53.544945"
> + y="70.636482"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.95933px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan136">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="-53.544945"
> + y="74.335648"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.95933px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan137">Buffer</tspan></text>
> + <g
> + id="g80"
> + transform="matrix(0.55137703,0,0,0.55137703,-26.59508,-38.546595)">
> + <path
> + id="path67"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g79">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path68"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path69"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path70"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path71"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path72"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path73"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path74"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path75"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path76"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path77"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path78"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path79"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.95933px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-10.001964"
> + y="70.636482"
> + id="text81"><tspan
> + sodipodi:role="line"
> + x="-10.001964"
> + y="70.636482"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.95933px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan80">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="-10.001964"
> + y="74.335648"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.95933px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan81">Buffer</tspan></text>
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.503319;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -9.7945204,96.73012 V 85.705707"
> + id="path81"
> + sodipodi:nodetypes="cc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-43.566456"
> + y="76.071831"
> + id="text82"><tspan
> + sodipodi:role="line"
> + x="-43.566456"
> + y="76.071831"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.134424"
> + id="tspan82">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-43.167019"
> + y="69.279099"
> + id="text83"><tspan
> + sodipodi:role="line"
> + x="-43.167019"
> + y="69.279099"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.134424"
> + id="tspan83">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-16.592932"
> + y="80.848907"
> + id="text83-59"><tspan
> + sodipodi:role="line"
> + x="-16.592932"
> + y="80.848907"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.134424"
> + id="tspan83-7">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-2.9815638"
> + y="80.505638"
> + id="text83-59-3"><tspan
> + sodipodi:role="line"
> + x="-2.9815638"
> + y="80.505638"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.134424"
> + id="tspan83-7-6">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-51.195774"
> + y="82.70266"
> + id="text83-7"><tspan
> + sodipodi:role="line"
> + x="-51.195774"
> + y="82.70266"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.134424"
> + id="tspan83-8">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-60.216568"
> + y="80.730423"
> + id="text83-7-4"><tspan
> + sodipodi:role="line"
> + x="-60.216568"
> + y="80.730423"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.134424"
> + id="tspan83-8-3">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-46.846184"
> + y="64.185593"
> + id="text83-5"><tspan
> + sodipodi:role="line"
> + x="-46.846184"
> + y="64.185593"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.134424"
> + id="tspan83-4">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-3.053925"
> + y="64.29808"
> + id="text83-5-9"><tspan
> + sodipodi:role="line"
> + x="-3.053925"
> + y="64.29808"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.134424"
> + id="tspan83-4-2">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="0.39451206"
> + y="69.797745"
> + id="text83-5-9-9"><tspan
> + sodipodi:role="line"
> + x="0.39451206"
> + y="69.797745"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.134424"
> + id="tspan83-4-2-5">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="0.52325541"
> + y="75.869576"
> + id="text83-5-9-9-7"><tspan
> + sodipodi:role="line"
> + x="0.52325541"
> + y="75.869576"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.134424"
> + id="tspan83-4-2-5-2">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-7.8769546"
> + y="82.812057"
> + id="text83-5-9-9-7-0"><tspan
> + sodipodi:role="line"
> + x="-7.8769546"
> + y="82.812057"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.134424"
> + id="tspan83-4-2-5-2-6">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-12.269638"
> + y="82.941895"
> + id="text83-5-9-9-7-0-4"><tspan
> + sodipodi:role="line"
> + x="-12.269638"
> + y="82.941895"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.134424"
> + id="tspan83-4-2-5-2-6-9">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-46.911255"
> + y="80.618149"
> + id="text83-5-6"><tspan
> + sodipodi:role="line"
> + x="-46.911255"
> + y="80.618149"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.134424"
> + id="tspan83-4-9">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.84096px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-55.941418"
> + y="82.7742"
> + id="text83-5-6-5"><tspan
> + sodipodi:role="line"
> + x="-55.941418"
> + y="82.7742"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.84096px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.134424"
> + id="tspan83-4-9-2">C</tspan></text>
> + <g
> + id="g86"
> + transform="matrix(0.33554626,0,0,0.33554626,44.707799,11.760136)">
> + <circle
> + style="fill:#ffffff;stroke:#ff0000;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle84"
> + cx="-121.9205"
> + cy="20.747513"
> + r="30.822298" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-122.11524"
> + y="26.792702"
> + id="text84"><tspan
> + sodipodi:role="line"
> + x="-122.11524"
> + y="26.792702"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.400612"
> + id="tspan84">C</tspan></text>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-size:2.84096px;font-family:'Linux Libertine O';-inkscape-font-specification:'Linux Libertine O';text-align:start;letter-spacing:1.64864px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:none;stroke:#000000;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + x="-160.78586"
> + y="34.318092"
> + id="text86"><tspan
> + sodipodi:role="line"
> + id="tspan86"
> + style="stroke-width:0.335547"
> + x="-160.78586"
> + y="34.318092" /></text>
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="rect86"
> + width="31.072945"
> + height="9.0205317"
> + x="-67.825142"
> + y="41.915016" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.60421px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-52.232677"
> + y="45.474743"
> + id="text88"><tspan
> + sodipodi:role="line"
> + x="-52.232677"
> + y="45.474743"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.60421px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan2">Insert the Instruction</tspan><tspan
> + sodipodi:role="line"
> + x="-52.232677"
> + y="48.730003"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.60421px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan1">into the ring</tspan></text>
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="rect89"
> + width="40.157963"
> + height="8.9755707"
> + x="-27.349821"
> + y="41.937496" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.503319;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -53.473992,57.398968 V 52.333823"
> + id="path90"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:0.503319;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M -10.021017,57.398968 V 52.333823"
> + id="path91"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#ff00ff;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="M -52.849973,29.546839 V 41.564691"
> + id="path1" />
> + <path
> + style="fill:#ff00ff;stroke:#ff9955;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="M -20.895465,29.546839 V 41.564691"
> + id="path2" />
> + <path
> + style="fill:#ff00ff;stroke:#ff0000;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="M 3.7978311,29.546839 V 41.564691"
> + id="path4" />
> + <path
> + style="fill:none;stroke:#ff00ff;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="m -52.849973,29.546839 v 6.753833 h 27.213977 v 5.264019"
> + id="path5"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#ff0000;stroke-width:0.335547;stroke-linecap:square;stroke-dasharray:none;marker-end:url(#ArrowWideHeavy)"
> + d="m 3.7978311,29.546839 v 4.767412 H -41.590279 v 7.25044"
> + id="path6"
> + sodipodi:nodetypes="cccc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:2.60421px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.134424"
> + x="-7.2148504"
> + y="45.474747"
> + id="text4"><tspan
> + sodipodi:role="line"
> + x="-7.2148509"
> + y="45.474747"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.60421px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan3">Insert the Instruction</tspan><tspan
> + sodipodi:role="line"
> + x="-7.2148504"
> + y="48.730011"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.60421px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.134424"
> + id="tspan4">into the ring</tspan></text>
> + </g>
> + </g>
> +</svg>
> diff --git a/Documentation/gpu/amdgpu/ring-buffer.rst b/Documentation/gpu/amdgpu/ring-buffer.rst
> new file mode 100644
> index 000000000000..40c189c9dab4
> --- /dev/null
> +++ b/Documentation/gpu/amdgpu/ring-buffer.rst
> @@ -0,0 +1,94 @@
> +=============
> + Ring Buffer
> +=============
> +
> +To handle communication between user space and kernel space, amdgpu adopts a
> +strategy based on a ring buffer, which is used by GFX, Compute, SDMA, UVD, VCE,
> +VCN, VPE, KIQ, MES, UMSCH, and CPER. See the figure below that illustrates how
> +this communication works:
> +
> +.. kernel-figure:: ring_buffers.svg
> +
> +Ring buffers in the amdgpu work as a producer-consumer problem, where userspace
> +acts as the producer, constantly filling the ring buffer with GPU commands to
> +be executed. Meanwhile, the GPU retrieves the information from the ring, parses
> +it, and distributes the specific set of instructions between the different
> +amdgpu blocks. Notice from the diagram that the ring has a Read Pointer (rptr)
> +that indicates where the GPU is currently reading, and there is a Write Pointer
> +(wptr) that indicates where the host has written the message. Note that every
> +time something is written to the ring, the wptr is incremented. Meanwhile, the
> +GPU constantly updates the rptr pointer, chasing the wptr until both pointers
> +are equal. The user space or the driver can utilize the rptr pointer to roughly
User space or the driver
> +estimate how many instructions are still pending completion (keep in mind that
> +rptr might not be precise).
You might want to drop the comment in the paranthesis. If you read
back the actual
rptr register, it should be correct, but the driver generally uses a
rptr shadow in memory which the engine may only update periodically.
> +
> +Usually, ring buffers in the driver have a limited size (search for occurrences
> +of `amdgpu_ring_init()`). One of the reasons for the small ring buffer size is
> +that CP (Command Processor) is capable of following addresses inserted into the
> +ring; this is illustrated in the image by the reference to the IB (Indirect
> +Buffer). The IB gives userspace the possibility to have an area in memory that
> +CP can read and feed the hardware with extra instructions.
> +
> +Enforce Isolation
> +=================
> +
> +Before examining the Enforce Isolation mechanism in the ring buffer context, it
> +is important to discuss two concepts: where the ring buffer is located and how
> +instructions from the ring buffer are processed in the graphics pipeline.
> +
> +All ASICs pre-GFX11 use what is called a kernel queue, which means the ring is
gfx11 and 12 still use kernel queues, they just happen to also support
user queues.
> +allocated in kernel space and has some restrictions, such as not being able to
> +map and unmap queues after initialization. GFX12 and newer support kernel
Kernel queues can be mapped an unmapped, the scheduler just never preempts them.
> +queues, but also provide a new mechanism named user queues, where the queue is
> +moved to the user space and can be mapped and unmapped. In practical terms, the
> +kernel queue approach inserts all GPU commands created by userspace into the
> +same set of rings, albeit in a mixed manner. See the picture below illustrating
> +this scenario:
> +
> +.. kernel-figure:: no_enforce_isolation.svg
> +
> +Note from the diagram that there is no guarantee of order or a clear separation
> +between instructions, which is not a problem most of the time, and this is also
I haven't looked at the images yet, but the jobs are added
sequentially, it's just that because the GC engine is pipelined, you
can have multiple things overlapping.
> +good for performance. In terms of executing those instructions in the GFX, it
> +must follow a pipeline that usually follows the following sequence: Shader
> +Export (SX), Geometry Engine (GE), Shader Process or Input (SPI), Scan
> +Converter (SC), Primitive Assembler (PA), and cache manipulation (this may
> +change between ASICs). Another common way to describe the pipeline is to use
> +Pixel Shader (PS), raster, and Vertex Shader (VS) to symbolize the two shader
> +stages. The diagram below illustrates the sequence described in the paragraph.
I think the rest of this paragraph is unrelated to enforce isolation.
I think it should be moved somewhere else to describe the hardware
pipeline.
> +
> +.. kernel-figure:: gfx_pipeline_seq.svg
> +
> +The use of the kernel queue is the default behaviour in amdgpu pre-GFX11 and in
> +many cases in newer ASICs. Although this solution is considered stable and
> +performs well, it also creates some intricate issues when something goes wrong.
> +The problem with this solution is that pinpointing which job caused an issue
> +can be challenging in some situations, which can complicate the debugging in
> +circumstances where the GPU recovery was triggered. For instance, if Job A
> +causes a hang issue, Job B's instruction might already be executing, and we
> +could incorrectly identify Job B as the problematic one. To mitigate this
> +problem, it was introduced the concept of Enforce Isolation that can be seen in
> +the below picture:
> +
> +.. kernel-figure:: enforce_isolation.svg
> +
> +As shown in the diagram, enforcing isolation introduces a level of ordering
> +between submissions, since the access to GFX/Compute is serialized. Notice that
> +this approach has a minimal performance impact, as it only allows one job to
> +submit commands at a time. However, this is not a notable problem, and the
> +benefit of better pinpointing the job that caused a problem outweighs the
> +performance impact. Although enforcing isolation improves the situation, it
> +does not fully resolve the issue of pinpointing bad jobs, as we can still
> +encounter scenarios where Job A hangs while Job B is running, leading to the
> +wrong blame of Job B. To avoid this issue, an additional element is introduced
> +to enforce isolation, as represented by the circles in the diagram. Every
> +circle is a wait for cache flushing, which ensures that when the next job
> +starts, it starts in a clean state, and if some issues happen, we can point to
> +the bad process more precisely.
I haven't seen the diagram yet, but this doesn't sound completely
correct. The driver inserts a fence wait between jobs in each ring to
make sure there is no overlapping work in the ring itself. However,
that is independent of enforce isolation. If you enable enforce
isolation, all jobs going to all GC queues are serialized.
Alex
> +
> +Ring Operations
> +===============
> +
> +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> + :internal:
> +
> diff --git a/Documentation/gpu/amdgpu/ring_buffers.svg b/Documentation/gpu/amdgpu/ring_buffers.svg
> new file mode 100644
> index 000000000000..7a6fcb19e151
> --- /dev/null
> +++ b/Documentation/gpu/amdgpu/ring_buffers.svg
> @@ -0,0 +1,1633 @@
> +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
> +<!-- Created with Inkscape (http://www.inkscape.org/) -->
> +
> +<svg
> + width="588.32483mm"
> + height="341.81656mm"
> + viewBox="0 0 588.32483 341.81656"
> + version="1.1"
> + id="svg1"
> + inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
> + sodipodi:docname="RING_BUFFER.svg"
> + 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">
> + <sodipodi:namedview
> + id="namedview1"
> + pagecolor="#ffffff"
> + bordercolor="#000000"
> + borderopacity="0.25"
> + inkscape:showpageshadow="2"
> + inkscape:pageopacity="0.0"
> + inkscape:pagecheckerboard="0"
> + inkscape:deskcolor="#d1d1d1"
> + inkscape:document-units="mm"
> + inkscape:zoom="0.89386809"
> + inkscape:cx="1106.9866"
> + inkscape:cy="729.97348"
> + inkscape:window-width="3072"
> + inkscape:window-height="1651"
> + inkscape:window-x="0"
> + inkscape:window-y="0"
> + inkscape:window-maximized="1"
> + inkscape:current-layer="layer1" />
> + <defs
> + id="defs1">
> + <marker
> + style="overflow:visible"
> + id="marker154"
> + refX="2"
> + refY="0"
> + orient="auto-start-reverse"
> + inkscape:stockid="Empty semicircle"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + style="fill:none;fill-rule:evenodd;stroke:context-stroke;stroke-width:1.08"
> + d="m -0.7647042,-3.0274156 c 1.656,0 3,1.344 3,3 0,1.656 -1.344,3 -3,3"
> + id="path154" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="ArrowTriangleStylized"
> + refX="0"
> + refY="0"
> + orient="auto-start-reverse"
> + inkscape:stockid="Stylized triangle arrow"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.5)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
> + d="m 6,0 c -3,1 -7,3 -9,5 0,0 0,-4 2,-5 -2,-1 -2,-5 -2,-5 2,2 6,4 9,5 z"
> + id="path135" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="marker132"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Diamond"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.45)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
> + id="path132" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="Diamond"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Diamond"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.45)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 Z"
> + id="path131" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="ArrowWide"
> + refX="0"
> + refY="0"
> + orient="auto-start-reverse"
> + inkscape:stockid="Wide arrow"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
> + d="M 3,-3 0,0 3,3"
> + transform="rotate(180,0.125,0)"
> + sodipodi:nodetypes="ccc"
> + id="path81" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="marker99"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Dot"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.5)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 5,0 C 5,2.76 2.76,5 0,5 -2.76,5 -5,2.76 -5,0 c 0,-2.76 2.3,-5 5,-5 2.76,0 5,2.24 5,5 z"
> + sodipodi:nodetypes="sssss"
> + id="path99" />
> + </marker>
> + <marker
> + style="overflow:visible"
> + id="Dot"
> + refX="0"
> + refY="0"
> + orient="auto"
> + inkscape:stockid="Dot"
> + markerWidth="1"
> + markerHeight="1"
> + viewBox="0 0 1 1"
> + inkscape:isstock="true"
> + inkscape:collect="always"
> + preserveAspectRatio="xMidYMid">
> + <path
> + transform="scale(0.5)"
> + style="fill:context-stroke;fill-rule:evenodd;stroke:none"
> + d="M 5,0 C 5,2.76 2.76,5 0,5 -2.76,5 -5,2.76 -5,0 c 0,-2.76 2.3,-5 5,-5 2.76,0 5,2.24 5,5 z"
> + sodipodi:nodetypes="sssss"
> + id="path98" />
> + </marker>
> + </defs>
> + <g
> + inkscape:label="Layer 1"
> + inkscape:groupmode="layer"
> + id="layer1"
> + transform="translate(123.51219,3.0159921)">
> + <rect
> + style="fill:#ffffff;stroke:none;stroke-width:1;stroke-linecap:square;stroke-dasharray:1, 2;stroke-dashoffset:0"
> + id="rect167"
> + width="595.25238"
> + height="349.86984"
> + x="-128.24815"
> + y="-8.0479612" />
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:1, 2;stroke-dashoffset:0"
> + id="rect111"
> + width="500.64935"
> + height="63.365536"
> + x="-65.219322"
> + y="168.41347"
> + ry="5.4989429" />
> + <path
> + style="fill:none;stroke:#917c6f;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 24.09216,175.30492 V 125.06784 H 47.447018 V 83.98949"
> + id="path151"
> + sodipodi:nodetypes="cccc" />
> + <g
> + id="g15"
> + transform="translate(-4.735971)">
> + <path
> + id="path1"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g14">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path3"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path4"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path5"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path6"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path7"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path8"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path9"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path10"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path11"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path12"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path13"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path14"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <g
> + id="g28"
> + transform="translate(46.175717)">
> + <path
> + id="path15"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g27">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path16"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path17"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path18"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path19"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path20"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path21"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path22"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path23"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path24"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path25"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path26"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path27"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <g
> + id="g41"
> + transform="translate(102.62407)">
> + <path
> + id="path28"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g40">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path29"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path30"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path31"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path32"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path33"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path34"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path35"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path36"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path37"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path38"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path39"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path40"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <g
> + id="g54"
> + transform="translate(154.12775)">
> + <path
> + id="path41"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g53">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path42"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path43"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path44"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path45"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path46"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path47"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path48"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path49"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path50"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path51"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path52"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path53"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <g
> + id="g67"
> + transform="translate(205.37341)">
> + <path
> + id="path54"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g66">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path55"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path56"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path57"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path58"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path59"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path60"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path61"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path62"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path63"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path64"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path65"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path66"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <g
> + id="g80"
> + transform="translate(256.63043)">
> + <path
> + id="path67"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g79">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path68"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path69"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path70"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path71"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path72"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path73"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path74"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path75"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path76"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path77"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path78"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path79"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <rect
> + style="fill:#afe9c6;stroke:#16502d;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + id="rect80"
> + width="97.534882"
> + height="40.813953"
> + x="2.9731095"
> + y="288.36279"
> + ry="5.6511626" />
> + <rect
> + style="fill:#80e5ff;stroke:#00aad4;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + id="rect81"
> + width="199.46111"
> + height="40.391335"
> + x="110.41494"
> + y="288.57413"
> + ry="5.5926461" />
> + <rect
> + style="fill:#de8787;stroke:#a02c2c;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + id="rect82"
> + width="81.028717"
> + height="40.88369"
> + x="321.87186"
> + y="288.32794"
> + ry="5.6608181" />
> + <g
> + id="g95"
> + transform="translate(332.1071)">
> + <path
> + id="path82"
> + style="fill:none;stroke:#000000;stroke-width:0.721067;stroke-dasharray:none"
> + d="M 30.278993,176.45537 A 22.905334,22.905334 0 0 0 7.3737955,199.36057 22.905334,22.905334 0 0 0 30.278993,222.26603 22.905334,22.905334 0 0 0 53.18445,199.36057 22.905334,22.905334 0 0 0 30.278993,176.45537 Z m 0,7.13274 a 15.772359,15.772359 0 0 1 15.77246,15.77246 15.772359,15.772359 0 0 1 -15.77246,15.77246 15.772359,15.772359 0 0 1 -15.772206,-15.77246 15.772359,15.772359 0 0 1 15.772206,-15.77246 z" />
> + <g
> + id="g94">
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 46.31405,200.72093 h 6.430134"
> + id="path83"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 7.6848605,200.72093 H 14.114993"
> + id="path84"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 30.103415,176.7326 v 6.43014"
> + id="path85"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 30.103415,215.50586 V 221.936"
> + id="path86"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,214.1052 3.21507,5.56866"
> + id="path87"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 36.501694,184.66805 3.21507,-5.56866"
> + id="path88"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,184.66805 -3.21507,-5.56866"
> + id="path89"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 23.652811,214.05288 -3.21507,5.56866"
> + id="path90"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,208.65101 4.546794,4.5468"
> + id="path91"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 43.31839,189.96525 4.546794,-4.5468"
> + id="path92"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M 17.202394,189.96525 12.6556,185.41845"
> + id="path93"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff00ff;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="m 16.940766,208.65101 -4.546794,4.5468"
> + id="path94"
> + sodipodi:nodetypes="cc" />
> + </g>
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:25.4px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="51.003948"
> + y="317.83759"
> + id="text14-7"><tspan
> + sodipodi:role="line"
> + x="51.003948"
> + y="317.83759"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25.4px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan14-7">GFX</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:25.4px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="209.95499"
> + y="314.9166"
> + id="text95"><tspan
> + sodipodi:role="line"
> + x="209.95499"
> + y="314.9166"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25.4px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan95">Compute</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:25.4px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="361.80203"
> + y="317.83759"
> + id="text96"><tspan
> + sodipodi:role="line"
> + x="361.80203"
> + y="317.83759"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25.4px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan96">SDMA</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:36.862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="429.28961"
> + y="313.10159"
> + id="text97"><tspan
> + sodipodi:role="line"
> + x="429.28961"
> + y="313.10159"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36.862px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan97">...</tspan></text>
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M 25.543152,285.49025 V 224.58863"
> + id="path97"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M 76.45484,285.49025 V 224.58863"
> + id="path100"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M 132.90319,285.49025 V 224.58863"
> + id="path101"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M 184.40687,285.49025 V 224.58863"
> + id="path102"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M 235.65253,285.49025 V 224.58863"
> + id="path103"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M 286.90955,285.49025 V 224.58863"
> + id="path104"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#Dot);marker-end:url(#marker99)"
> + d="M 362.38622,285.49025 V 224.58863"
> + id="path105"
> + sodipodi:nodetypes="cc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:36.862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="261.28104"
> + y="259.52591"
> + id="text105"><tspan
> + sodipodi:role="line"
> + x="261.28104"
> + y="259.52591"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36.862px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan105">...</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:36.862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="50.998993"
> + y="259.52591"
> + id="text106"><tspan
> + sodipodi:role="line"
> + x="50.998993"
> + y="259.52591"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36.862px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan106">...</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:36.862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="382.22592"
> + y="259.52591"
> + id="text107"><tspan
> + sodipodi:role="line"
> + x="382.22592"
> + y="259.52591"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:36.862px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan107">...</tspan></text>
> + <path
> + style="fill:#de8787;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none"
> + d="M -65.568535,148.88709 H 459.54211"
> + id="path107" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:19.7556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="415.21619"
> + y="166.24187"
> + id="text108"><tspan
> + sodipodi:role="line"
> + x="415.21619"
> + y="166.24187"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.7556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan108">Kernel</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:19.7556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="414.91986"
> + y="138.75868"
> + id="text109"><tspan
> + sodipodi:role="line"
> + x="414.91986"
> + y="138.75868"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:19.7556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan109">Userspace</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:11.2889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-44.396496"
> + y="199.94142"
> + id="text110"><tspan
> + sodipodi:role="line"
> + x="-44.396496"
> + y="199.94142"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan110">Kernel</tspan><tspan
> + sodipodi:role="line"
> + x="-44.396496"
> + y="214.05255"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan111">Queue</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:11.2889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-30.39555"
> + y="53.215206"
> + id="text112"><tspan
> + sodipodi:role="line"
> + x="-30.39555"
> + y="53.215206"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan112">Processes</tspan></text>
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:9, 9;stroke-dashoffset:0"
> + id="rect113"
> + width="452.2225"
> + height="75.723717"
> + x="-60.944237"
> + y="11.868809"
> + ry="6.5714021" />
> + <circle
> + style="fill:#ffffff;stroke:#917c6f;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="path111"
> + cx="47.507706"
> + cy="49.241512"
> + r="30.822298" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#917c6f;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="47.50771"
> + y="55.312099"
> + id="text113"><tspan
> + sodipodi:role="line"
> + x="47.50771"
> + y="55.312099"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#917c6f;stroke-width:0.400612"
> + id="tspan113">A</tspan></text>
> + <circle
> + style="fill:#ffffff;stroke:#ff9955;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle112"
> + cx="176.56291"
> + cy="49.241512"
> + r="30.822298" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="176.24965"
> + y="55.286701"
> + id="text114"><tspan
> + sodipodi:role="line"
> + x="176.24965"
> + y="55.286701"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan114">B</tspan></text>
> + <circle
> + style="fill:#ffffff;stroke:#55ddff;stroke-width:1.62704;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0"
> + id="circle113"
> + cx="305.61813"
> + cy="49.241512"
> + r="30.822298" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:16.9333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#55ddff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="305.42337"
> + y="55.286701"
> + id="text115"><tspan
> + sodipodi:role="line"
> + x="305.42337"
> + y="55.286701"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16.9333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#55ddff;stroke-width:0.400612"
> + id="tspan115">C</tspan></text>
> + <rect
> + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:5.99998, 2.99999, 1.5, 2.99999;stroke-dashoffset:0"
> + id="rect117"
> + width="515.65753"
> + height="59.528286"
> + x="-65.221695"
> + y="278.51898"
> + ry="5.1659417" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:11.2889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-44.396496"
> + y="312.30948"
> + id="text118"><tspan
> + sodipodi:role="line"
> + x="-44.396496"
> + y="312.30948"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:11.2889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan118">GPU</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-17.792967"
> + y="194.41469"
> + id="text4"><tspan
> + sodipodi:role="line"
> + x="-17.792967"
> + y="194.41469"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.400612"
> + id="tspan4">wptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="36.248669"
> + y="163.10979"
> + id="text5"><tspan
> + sodipodi:role="line"
> + x="36.248669"
> + y="163.10979"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;stroke-width:0.400612"
> + id="tspan5">rptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ac9d93;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="28.952087"
> + y="182.41843"
> + id="text6"><tspan
> + sodipodi:role="line"
> + x="28.952087"
> + y="182.41843"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ac9d93;stroke-width:0.400612"
> + id="tspan6">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ac9d93;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="37.832031"
> + y="186.1924"
> + id="text7"><tspan
> + sodipodi:role="line"
> + x="37.832031"
> + y="186.1924"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ac9d93;stroke-width:0.400612"
> + id="tspan7">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ac9d93;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="37.98003"
> + y="216.31021"
> + id="text8"><tspan
> + sodipodi:role="line"
> + x="37.98003"
> + y="216.31021"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ac9d93;stroke-width:0.400612"
> + id="tspan8">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ac9d93;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="8.1582127"
> + y="208.54025"
> + id="text9"><tspan
> + sodipodi:role="line"
> + x="8.1582127"
> + y="208.54025"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ac9d93;stroke-width:0.400612"
> + id="tspan9">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ac9d93;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="114.03775"
> + y="196.40289"
> + id="text10"><tspan
> + sodipodi:role="line"
> + x="114.03775"
> + y="196.40289"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ac9d93;stroke-width:0.400612"
> + id="tspan10">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ac9d93;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="366.5202"
> + y="220.80096"
> + id="text11"><tspan
> + sodipodi:role="line"
> + x="366.5202"
> + y="220.80096"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ac9d93;stroke-width:0.400612"
> + id="tspan11">A</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="95.389114"
> + y="196.60231"
> + id="text12"><tspan
> + sodipodi:role="line"
> + x="95.389114"
> + y="196.60231"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan12">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="171.62987"
> + y="186.67509"
> + id="text13"><tspan
> + sodipodi:role="line"
> + x="171.62987"
> + y="186.67509"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan13">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="358.23288"
> + y="220.44789"
> + id="text14"><tspan
> + sodipodi:role="line"
> + x="358.23288"
> + y="220.44789"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan14">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#55ddff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="94.24794"
> + y="208.68309"
> + id="text15"><tspan
> + sodipodi:role="line"
> + x="94.24794"
> + y="208.68309"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#55ddff;stroke-width:0.400612"
> + id="tspan15">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#55ddff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="43.869183"
> + y="196.65234"
> + id="text16"><tspan
> + sodipodi:role="line"
> + x="43.869183"
> + y="196.65234"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#55ddff;stroke-width:0.400612"
> + id="tspan16">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00ccff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="188.07849"
> + y="181.51845"
> + id="text17"><tspan
> + sodipodi:role="line"
> + x="188.07849"
> + y="181.51845"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ccff;stroke-width:0.400612"
> + id="tspan17"><tspan
> + style="font-size:4.93889px;fill:#00ccff"
> + id="tspan26">IB</tspan><tspan
> + style="font-size:3.52778px;baseline-shift:sub;fill:#00ccff"
> + id="tspan25">c</tspan></tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#55ddff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="349.12769"
> + y="216.0551"
> + id="text18"><tspan
> + sodipodi:role="line"
> + x="349.12769"
> + y="216.0551"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#55ddff;stroke-width:0.400612"
> + id="tspan18">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="43.394695"
> + y="208.58258"
> + id="text19"><tspan
> + sodipodi:role="line"
> + x="43.394695"
> + y="208.58258"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan19">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="29.580742"
> + y="220.72212"
> + id="text20"><tspan
> + sodipodi:role="line"
> + x="29.580742"
> + y="220.72212"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan20">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="13.045858"
> + y="216.32677"
> + id="text21"><tspan
> + sodipodi:role="line"
> + x="13.045858"
> + y="216.32677"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan21">B</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#55ddff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="21.055231"
> + y="220.72211"
> + id="text22"><tspan
> + sodipodi:role="line"
> + x="21.055231"
> + y="220.72211"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#55ddff;stroke-width:0.400612"
> + id="tspan22">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#55ddff;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="179.01208"
> + y="182.54855"
> + id="text23"><tspan
> + sodipodi:role="line"
> + x="179.01208"
> + y="182.54855"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#55ddff;stroke-width:0.400612"
> + id="tspan23">C</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="88.379082"
> + y="185.52925"
> + id="text24"><tspan
> + sodipodi:role="line"
> + x="88.379082"
> + y="185.52925"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan24"><tspan
> + style="font-size:4.93889px;fill:#ff9955"
> + id="tspan28">IB</tspan><tspan
> + style="font-size:3.52778px;baseline-shift:sub;fill:#ff9955"
> + id="tspan27">b</tspan></tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="97.027405"
> + y="163.10979"
> + id="text29"><tspan
> + sodipodi:role="line"
> + x="97.027405"
> + y="163.10979"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;stroke-width:0.400612"
> + id="tspan29">rptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="102.24193"
> + y="229.5128"
> + id="text30"><tspan
> + sodipodi:role="line"
> + x="102.24193"
> + y="229.5128"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.400612"
> + id="tspan30">wptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="116.89307"
> + y="163.58255"
> + id="text31"><tspan
> + sodipodi:role="line"
> + x="116.89307"
> + y="163.58255"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.400612"
> + id="tspan31">wptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="104.55666"
> + y="178.91209"
> + id="text32"><tspan
> + sodipodi:role="line"
> + x="104.55666"
> + y="178.91209"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;stroke-width:0.400612"
> + id="tspan32">rptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="169.33571"
> + y="163.10979"
> + id="text33"><tspan
> + sodipodi:role="line"
> + x="169.33571"
> + y="163.10979"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;stroke-width:0.400612"
> + id="tspan33">rptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="198.10239"
> + y="164.21048"
> + id="text34"><tspan
> + sodipodi:role="line"
> + x="198.10239"
> + y="164.21048"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.400612"
> + id="tspan34">wptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="321.48608"
> + y="209.17052"
> + id="text35"><tspan
> + sodipodi:role="line"
> + x="321.48608"
> + y="209.17052"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.400612"
> + id="tspan35">wptr</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="381.35901"
> + y="239.92375"
> + id="text36"><tspan
> + sodipodi:role="line"
> + x="381.35901"
> + y="239.92375"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.05556px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#00ff00;stroke-width:0.400612"
> + id="tspan36">rptr</tspan></text>
> + <path
> + style="fill:#00ff00;stroke:#00ff00;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m 35.624746,164.89008 -2.762741,10.3107"
> + id="path80" />
> + <path
> + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m -8.7253214,192.92597 h 10.67442"
> + id="path95" />
> + <path
> + style="fill:#00ff00;stroke:#00ff00;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="M 96.12886,165.61875 92.526458,179.0631"
> + id="path96"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m 99.252771,223.75691 -6.710739,-5.14099"
> + id="path106"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:none;stroke:#00ff00;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m 104.23449,180.8622 v 13.29071 h 4.91861"
> + id="path108"
> + sodipodi:nodetypes="ccc" />
> + <path
> + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m 117.92183,166.63928 v 12.97675"
> + id="path109"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m 198.50323,166.63928 v 12.97675"
> + id="path110"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#00ff00;stroke:#00ff00;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m 169.22285,165.37383 v 13.91861"
> + id="path112"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#00ff00;stroke:#00ff00;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="m 379.21241,233.73729 -9.84194,-9.84195"
> + id="path113"
> + sodipodi:nodetypes="cc" />
> + <path
> + style="fill:#ff0000;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
> + d="M 330.44909,207.68179 H 340.077"
> + id="path114"
> + sodipodi:nodetypes="cc" />
> + <g
> + id="g127"
> + transform="translate(-243.31051,23.087859)">
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.76111px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="135.71123"
> + y="112.41485"
> + id="text116"><tspan
> + sodipodi:role="line"
> + x="135.71123"
> + y="112.41485"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan116">PM4<tspan
> + style="font-size:65%;baseline-shift:sub"
> + id="tspan117">1</tspan></tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.76111px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="135.39342"
> + y="122.44057"
> + id="text120"><tspan
> + sodipodi:role="line"
> + x="135.39342"
> + y="122.44057"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan120">PM4<tspan
> + style="font-size:65%;baseline-shift:sub"
> + id="tspan123">2</tspan></tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.76111px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="135.49934"
> + y="136.68669"
> + id="text122"><tspan
> + sodipodi:role="line"
> + x="135.49934"
> + y="136.68669"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan122">PM4<tspan
> + style="font-size:65%;baseline-shift:sub"
> + id="tspan124">n</tspan></tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.76111px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="135.65942"
> + y="128.1123"
> + id="text126"><tspan
> + sodipodi:role="line"
> + x="135.65942"
> + y="128.1123"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan126">...</tspan></text>
> + <path
> + style="fill:none;stroke:#0000ff;stroke-width:2;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + d="m 126.12628,103.17346 h -5.32796 v 38.77576 h 5.32796"
> + id="path126"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#0000ff;stroke-width:2;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + d="m 143.29418,103.17346 h 5.32796 v 38.77576 h -5.32796"
> + id="path127"
> + sodipodi:nodetypes="cccc" />
> + </g>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-7.0803289"
> + y="244.43291"
> + id="text129"><tspan
> + sodipodi:role="line"
> + x="-7.0803289"
> + y="244.43291"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#ff9955;stroke-width:0.400612"
> + id="tspan129"><tspan
> + style="font-size:7.05556px;fill:#ff9955"
> + id="tspan127">IB</tspan><tspan
> + style="font-size:3.52778px;baseline-shift:sub;fill:#ff9955"
> + id="tspan128">b</tspan></tspan></text>
> + <g
> + id="g130"
> + transform="translate(-0.5919954,-90.131448)">
> + <rect
> + style="fill:#ffff00;stroke:#ffff00;stroke-width:0.743523;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
> + id="rect130"
> + width="16.584557"
> + height="11.616416"
> + x="-21.840757"
> + y="358.62256"
> + ry="0" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:9.87778px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-13.612684"
> + y="367.95712"
> + id="text130"><tspan
> + sodipodi:role="line"
> + x="-13.612684"
> + y="367.95712"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:9.87778px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan130">CP</tspan></text>
> + </g>
> + <path
> + style="fill:none;stroke:#00d4aa;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker132);marker-end:url(#Diamond)"
> + d="M -13.431733,265.14038 V 238.02343 H 76.45484"
> + id="path130"
> + sodipodi:nodetypes="ccc" />
> + <path
> + style="fill:none;stroke:#00d4aa;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker132);marker-end:url(#Diamond)"
> + d="m -108.62977,169.16297 v 103.37737 h 82.669238"
> + id="path133"
> + sodipodi:nodetypes="ccc" />
> + <path
> + style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#ArrowTriangleStylized)"
> + d="M -107.14978,120.98926 V -2.5159921 H 176.92597 V 16.131894"
> + id="path134"
> + sodipodi:nodetypes="cccc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="25.324078"
> + y="197.77319"
> + id="text136"><tspan
> + sodipodi:role="line"
> + x="25.324078"
> + y="197.77319"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan136">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="25.324078"
> + y="205.71069"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan137">Buffer</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="76.235764"
> + y="197.77319"
> + id="text139"><tspan
> + sodipodi:role="line"
> + x="76.235764"
> + y="197.77319"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan138">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="76.235764"
> + y="205.71069"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan139">Buffer</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="132.68411"
> + y="197.77319"
> + id="text141"><tspan
> + sodipodi:role="line"
> + x="132.68411"
> + y="197.77319"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan140">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="132.68411"
> + y="205.71069"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan141">Buffer</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="184.18781"
> + y="197.77319"
> + id="text143"><tspan
> + sodipodi:role="line"
> + x="184.18781"
> + y="197.77319"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan142">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="184.18781"
> + y="205.71069"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan143">Buffer</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="235.43346"
> + y="197.77319"
> + id="text147"><tspan
> + sodipodi:role="line"
> + x="235.43346"
> + y="197.77319"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan146">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="235.43346"
> + y="205.71069"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan147">Buffer</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="286.69049"
> + y="197.77319"
> + id="text149"><tspan
> + sodipodi:role="line"
> + x="286.69049"
> + y="197.77319"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan148">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="286.69049"
> + y="205.71069"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan149">Buffer</tspan></text>
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="362.16714"
> + y="197.77319"
> + id="text151"><tspan
> + sodipodi:role="line"
> + x="362.16714"
> + y="197.77319"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan150">Ring</tspan><tspan
> + sodipodi:role="line"
> + x="362.16714"
> + y="205.71069"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan151">Buffer</tspan></text>
> + <path
> + style="fill:none;stroke:#917c6f;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 134.065,175.23092 V 125.06784 H 47.638527 V 89.317459"
> + id="path158"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#917c6f;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 365.79312,175.67492 V 125.06784 H 47.447018 V 81.621506"
> + id="path159"
> + sodipodi:nodetypes="cccc" />
> + <text
> + xml:space="preserve"
> + style="font-style:normal;font-weight:normal;font-size:7.76111px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.400612"
> + x="-68.488571"
> + y="250.37801"
> + id="text159"><tspan
> + sodipodi:role="line"
> + x="-68.488571"
> + y="250.37801"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan159">CP is capable of</tspan><tspan
> + sodipodi:role="line"
> + x="-68.488571"
> + y="260.07941"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan160">following the</tspan><tspan
> + sodipodi:role="line"
> + x="-68.488571"
> + y="269.78079"
> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:7.76111px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.400612"
> + id="tspan161">IB address.</tspan></text>
> + <path
> + style="fill:none;stroke:#ff9955;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 38.977794,178.16115 V 132.60272 H 177.31847 V 80.437513"
> + id="path161"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#ff9955;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 76.233608,174.60301 V 132.60272 H 177.31847 V 80.733511"
> + id="path162"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#ff9955;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="m 185.48942,174.60301 v -42.00029 h -8.17095 V 81.325508"
> + id="path163"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#ff9955;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 353.76849,176.69603 V 132.60272 H 177.31847 V 82.657499"
> + id="path164"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#55ddff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 178.37314,176.69603 V 138.67068 H 307.08591 V 81.769505"
> + id="path165"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#55ddff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="M 84.837713,176.69603 V 138.67068 H 307.08591 V 81.769505"
> + id="path166"
> + sodipodi:nodetypes="cccc" />
> + <path
> + style="fill:none;stroke:#55ddff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;marker-start:url(#marker154)"
> + d="m 346.50011,180.10001 v -41.42933 h -39.4142 V 81.769505"
> + id="path167"
> + sodipodi:nodetypes="cccc" />
> + </g>
> +</svg>
> --
> 2.47.2
>
More information about the amd-gfx
mailing list