summaryrefslogtreecommitdiff
path: root/Documentation/gpu
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-02-11 12:55:44 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2026-02-11 12:55:44 -0800
commit939faf71cf7ca9ab3d1bd2912ac0e203d4d7156a (patch)
treebf81a5b8c95c7095983719a3e0273a73dbe79c34 /Documentation/gpu
parentb7ef56a07672e0d7ebe71c9d9b45f959f0c2f8e8 (diff)
parent2f5db9b4002470ea19380326c5a390647c56e780 (diff)
Merge tag 'drm-next-2026-02-11' of https://gitlab.freedesktop.org/drm/kernel
Pull drm updates from Dave Airlie: "Highlights: - amdgpu support for lots of new IP blocks which means newer GPUs - xe has a lot of SR-IOV and SVM improvements - lots of intel display refactoring across i915/xe - msm has more support for gen8 platforms - Given up on kgdb/kms integration, it's too hard on modern hw core: - drop kgdb support - replace system workqueue with percpu - account for property blobs in memcg - MAINTAINERS updates for xe + buddy rust: - Fix documentation for Registration constructors - Use pin_init::zeroed() for fops initialization - Annotate DRM helpers with __rust_helper - Improve safety documentation for gem::Object::new() - Update AlwaysRefCounted imports - mm: Prevent integer overflow in page_align() atomic: - add drm_device pointer to drm_private_obj - introduce gamma/degamma LUT size check buddy: - fix free_trees memory leak - prevent BUG_ON bridge: - introduce drm_bridge_unplug/enter/exit - add connector argument to .hpd_notify - lots of recounting conversions - convert rockchip inno hdmi to bridge - lontium-lt9611uxc: switch to HDMI audio helpers - dw-hdmi-qp: add support for HPD-less setups - Algoltek AG6311 support panels: - edp: CSW MNE007QB3-1, AUO B140HAN06.4, AUO B140QAX01.H - st75751: add SPI support - Sitronix ST7920, Samsung LTL106HL02 - LG LH546WF1-ED01, HannStar HSD156J - BOE NV130WUM-T08 - Innolux G150XGE-L05 - Anbernic RG-DS dma-buf: - improve sg_table debugging - add tracepoints - call clear_page instead of memset - start to introduce cgroup memory accounting in heaps - remove sysfs stats dma-fence: - add new helpers dp: - mst: avoid oob access with vcpi=0 hdmi: - limit infoframes exposure to userspace gem: - reduce page table overhead with THP - fix leak in drm_gem_get_unmapped_area gpuvm: - API sanitation for rust bindings sched: - introduce new helpers panic: - report invalid panic modes - add kunit tests i915/xe display: - Expose sharpness only if num_scalers is >= 2 - Add initial Xe3P_LPD for NVL - BMG FBC support - Add MTL+ platforms to support dpll framework _ fix DIMM_S DRM decoding on ICL - Return to using AUX interrupts - PSR/Panel replay refactoring - use consolidation HDMI tables - Xe3_LPD CD2X dividier changes xe: - vfio: add vfio_pci for intel GPU - multi queue support - dynamic pagemaps and multi-device SVM - expose temp attribs in hwmon - NO_COMPRESSION bo flag - expose MERT OA unit - sysfs survivability refactor - SRIOV PF: add MERT support - enable SR-IOV VF migration - Enable I2C/NVM on Crescent Island - Xe3p page reclaimation support - introduce SRIOV scheduler groups - add SoC remappt support in system controller - insert compiler barriers in GuC code - define NVL GuC firmware - handle GT resume failure - fix drm scheduler layering violations - enable GSC loading and PXP for PTL - disable GuC Power DCC strategy on PTL - unregister drm device on probe error i915: - move to kernel standard fault injection - bump recommended GuC version for DG2 and MTL amdgpu: - SMUIO 15.x, PSP 15.x support - IH 6.1.1/7.1 support - MMHUB 3.4/4.2 support - GC 11.5.4/12.1 support - SDMA 6.1.4/7.1/7.11.4 support - JPEG 5.3 support - UserQ updates - GC 9 gfx queue reset support - TTM memory ops parallelization - convert legacy logging to new helpers - DC analog fixes amdkfd: - GC 11.5.4/12.1 suppport - SDMA 6.1.4/7.1 support - per context support - increase kfd process hash table - Reserved SDMA rework radeon: - convert legacy logging to new helpers - use devm for i2c adapters msm: - GPU - Document a612/RGMU dt bindings - UBWC 6.0 support (for A840 / Kaanapali) - a225 support - DPU: - Switch to use virtual planes by default - Fix DSI CMD panels on DPU 3.x - Rewrite format handling to remove intermediate representation - Fix watchdog on DPU 8.x+ - Fix TE / Vsync source setting on DPU 8.x+ - Add 3D_Mux on SC7280 - Kaanapali platform support - Fix UBWC register programming - Make RM reserve DSPP-enabled mixers for CRTCs with LMs - Gamma correction support - DP: - Enable support for eDP 1.4+ link rate tables - Fix MDSS1 DP indices on SA8775P, making them to work - Fix msm_dp_ctrl_config_msa() to work with LLVM 20 - DSI: - Document QCS8300 as compatible with SA8775P - Kaanapali platform support - DSI PHY: - switch to divider_determine_rate() - MDP5: - Drop support for MSM8998, SDM660 and SDM630 (switch over to DPU) - MDSS: - Kaanapali platform support - Fixed UBWC register programming nova-core: - Prepare for Turing support. This includes parsing and handling Turing-specific firmware headers and sections as well as a Turing Falcon HAL implementation - Get rid of the Result<impl PinInit<T, E>> anti-pattern - Relocate initializer-specific code into the appropriate initializer - Use CStr::from_bytes_until_nul() to remove custom helpers - Improve handling of unexpected firmware values - Clean up redundant debug prints - Replace c_str!() with native Rust C-string literals - Update nova-core task list nova: - Align GEM object size to system page size tyr: - Use generated uAPI bindings for GpuInfo - Replace manual sleeps with read_poll_timeout() - Replace c_str!() with native Rust C-string literals - Suppress warnings for unread fields - Fix incorrect register name in print statement nouveau: - fix big page table support races in PTE management - improve reclocking on tegra 186+ amdxdna: - fix suspend race conditions - improve handling of zero tail pointers - fix cu_idx overwritten during command setup - enable hardware context priority - remove NPU2 support - update message buffer allocation requirements - update firmware version check ast: - support imported cursor buffers - big endian fixes etnaviv: - add PPU flop reset support imagination: - add AM62P support - introduce hw version checks ivpu: - implement warm boot flow panfrost: - add bo sync ioctl - add GPU_PM_RT support for RZ/G3E SoC panthor: - add bo sync ioctl - enable timestamp propagation - scheduler robustness improvements - VM termination fixes - huge page support rockchip: - RK3368 HDMI Support - get rid of atomic_check fixups - RK3506 support - RK3576/RK3588 improved HPD handling rz-du: - RZ/V2H(P) MIPI-DSI Support v3d: - fix DMA segment size - convert to new logging helpers mediatek: - move DP training to hotplug thread - convert logging to new helpers - add support for HS speed DSI - Genio 510/700/1200-EVK, Radxa NIO-12L HDMI support atmel-hlcdc: - switch to drmm resource - support nomodeset - use newer helpers hisilicon: - fix various DP bugs renesas: - fix kernel panic on reboot exynos: - fix vidi_connection_ioctl using wrong device - fix vidi_connection deref user ptr - fix concurrency regression with vidi_context vkms: - add configfs support for display configuration * tag 'drm-next-2026-02-11' of https://gitlab.freedesktop.org/drm/kernel: (1610 commits) drm/xe/pm: Disable D3Cold for BMG only on specific platforms drm/xe: Fix kerneldoc for xe_tlb_inval_job_alloc_dep drm/xe: Fix kerneldoc for xe_gt_tlb_inval_init_early drm/xe: Fix kerneldoc for xe_migrate_exec_queue drm/xe/query: Fix topology query pointer advance drm/xe/guc: Fix kernel-doc warning in GuC scheduler ABI header drm/xe/guc: Fix CFI violation in debugfs access. accel/amdxdna: Move RPM resume into job run function accel/amdxdna: Fix incorrect DPM level after suspend/resume nouveau/vmm: start tracking if the LPT PTE is valid. (v6) nouveau/vmm: increase size of vmm pte tracker struct to u32 (v2) nouveau/vmm: rewrite pte tracker using a struct and bitfields. accel/amdxdna: Fix incorrect error code returned for failed chain command accel/amdxdna: Remove hardware context status drm/bridge: imx8qxp-pixel-combiner: Fix bailout for imx8qxp_pc_bridge_probe() drm/panel: ilitek-ili9882t: Remove duplicate initializers in tianma_il79900a_dsc drm/i915/display: fix the pixel normalization handling for xe3p_lpd drm/exynos: vidi: use ctx->lock to protect struct vidi_context member variables related to memory alloc/free drm/exynos: vidi: fix to avoid directly dereferencing user pointer drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl() ...
Diffstat (limited to 'Documentation/gpu')
-rw-r--r--Documentation/gpu/amdgpu/amd_overview_block.svg687
-rw-r--r--Documentation/gpu/amdgpu/amdgpu-glossary.rst48
-rw-r--r--Documentation/gpu/amdgpu/apu-asic-info-table.csv3
-rw-r--r--Documentation/gpu/amdgpu/display/dc-glossary.rst3
-rw-r--r--Documentation/gpu/amdgpu/driver-core.rst31
-rw-r--r--Documentation/gpu/amdgpu/driver-misc.rst26
-rw-r--r--Documentation/gpu/amdgpu/enforce_isolation.svg654
-rw-r--r--Documentation/gpu/amdgpu/gc/index.rst24
-rw-r--r--Documentation/gpu/amdgpu/gfx_pipeline_seq.svg413
-rw-r--r--Documentation/gpu/amdgpu/index.rst1
-rw-r--r--Documentation/gpu/amdgpu/no_enforce_isolation.svg707
-rw-r--r--Documentation/gpu/amdgpu/process-isolation.rst1
-rw-r--r--Documentation/gpu/amdgpu/ring-buffer.rst95
-rw-r--r--Documentation/gpu/amdgpu/ring_buffers.svg1633
-rw-r--r--Documentation/gpu/amdgpu/userq.rst2
-rw-r--r--Documentation/gpu/drm-mm.rst29
-rw-r--r--Documentation/gpu/nova/core/todo.rst59
-rw-r--r--Documentation/gpu/todo.rst61
-rw-r--r--Documentation/gpu/xe/xe_exec_queue.rst14
19 files changed, 4427 insertions, 64 deletions
diff --git a/Documentation/gpu/amdgpu/amd_overview_block.svg b/Documentation/gpu/amdgpu/amd_overview_block.svg
new file mode 100644
index 000000000000..cbd705afc9e2
--- /dev/null
+++ b/Documentation/gpu/amdgpu/amd_overview_block.svg
@@ -0,0 +1,687 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="237.4014mm"
+ height="160.98259mm"
+ viewBox="0 0 237.4014 160.98259"
+ version="1.1"
+ id="svg1"
+ inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
+ sodipodi:docname="amd_overview_block.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="2"
+ inkscape:cx="576.75"
+ inkscape:cy="313.25"
+ inkscape:window-width="3840"
+ inkscape:window-height="2083"
+ 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>
+ <marker
+ style="overflow:visible"
+ id="ArrowWideRounded"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Wide, rounded 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:round"
+ d="M 3,-3 0,0 3,3"
+ transform="rotate(180,0.125,0)"
+ sodipodi:nodetypes="ccc"
+ id="path2" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(9.9255824,-64.69615)">
+ <rect
+ style="fill:#ffffff;stroke:none;stroke-width:0.999747"
+ id="rect5"
+ width="239.13895"
+ height="162.38739"
+ x="-10.311751"
+ y="63.871342" />
+ <rect
+ style="fill:#ffffff;stroke:#000000;stroke-width:0.79375"
+ id="rect1"
+ width="174.55814"
+ height="140.23256"
+ x="22.263056"
+ y="65.093025" />
+ <rect
+ style="fill:#00d400;stroke:#00d400;stroke-width:0.348444;stroke-dasharray:none"
+ id="rect8-5"
+ width="3.8659263"
+ height="4.2845292"
+ x="38.69939"
+ y="75.819946" />
+ <rect
+ style="fill:#00d400;stroke:#00d400;stroke-width:0.348444;stroke-dasharray:none"
+ id="rect9"
+ width="3.8659263"
+ height="4.2845292"
+ x="176.7458"
+ y="75.68573" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;font-family:'Linux Libertine O';-inkscape-font-specification:'Linux Libertine O';text-align:start;letter-spacing:4.91331px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#00d400;stroke:#00d400;stroke-width:1;stroke-dasharray:none"
+ x="45.418606"
+ y="216.62791"
+ id="text12"><tspan
+ sodipodi:role="line"
+ id="tspan12"
+ style="stroke-width:1"
+ x="45.418606"
+ y="216.62791" /></text>
+ <g
+ id="g34">
+ <rect
+ style="fill:#ffffff;stroke:#008033;stroke-width:1;stroke-dasharray:none"
+ id="rect7"
+ width="19.539951"
+ height="6.9818101"
+ x="22.811832"
+ y="210.3201" />
+ <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:#008033;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="52.663685"
+ y="216.07796"
+ id="text68"><tspan
+ sodipodi:role="line"
+ x="52.663685"
+ y="216.07796"
+ 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:#008033;stroke-width:0.0690111"
+ id="tspan68">UMC</tspan></text>
+ </g>
+ <g
+ id="g29"
+ transform="translate(-0.52916667)">
+ <rect
+ style="fill:#00d400;stroke:#00d400;stroke-width:0.348444;stroke-dasharray:none"
+ id="rect8"
+ width="3.8659263"
+ height="4.2845292"
+ x="22.782616"
+ y="220.36148" />
+ <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.0690111"
+ x="48.966854"
+ y="224.15474"
+ id="text13"><tspan
+ sodipodi:role="line"
+ x="48.966854"
+ y="224.15474"
+ 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:#00ff00;stroke-width:0.0690111"
+ id="tspan13">Memory hub</tspan></text>
+ </g>
+ <g
+ id="g12"
+ transform="translate(-1.8520837,2.3812496)">
+ <g
+ id="g13">
+ <rect
+ style="fill:#ffffff;stroke:#ffd42a;stroke-width:1;stroke-dasharray:none"
+ id="rect15"
+ width="28.674419"
+ height="11.302325"
+ x="114.87544"
+ y="169.54433"
+ ry="2.6458333" />
+ <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.0690111"
+ x="129.06978"
+ y="177.46243"
+ id="text15"><tspan
+ sodipodi:role="line"
+ x="129.06978"
+ y="177.46243"
+ 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.0690111"
+ id="tspan15">PSP</tspan></text>
+ </g>
+ </g>
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="m 73.88372,201.92338 h 43.74419 V 184.5631"
+ id="path16"
+ sodipodi:nodetypes="ccc" />
+ <rect
+ style="fill:#ffffff;stroke:#00ccff;stroke-width:1;stroke-dasharray:none"
+ id="rect16"
+ width="40.220226"
+ height="11.1272"
+ x="150.82011"
+ y="193.07373" />
+ <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.0690111"
+ x="170.78101"
+ y="200.90428"
+ id="text16"><tspan
+ sodipodi:role="line"
+ x="170.78101"
+ y="200.90428"
+ 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.0690111"
+ id="tspan16">PCIe (NBIO)</tspan></text>
+ <g
+ id="g10"
+ transform="translate(-8.807217,1.0583333)">
+ <rect
+ style="fill:#ffffff;stroke:#ff6600;stroke-width:1;stroke-dasharray:none"
+ id="rect10"
+ width="50.551014"
+ height="10.992874"
+ x="65.641136"
+ y="122.93423" />
+ <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.0690111"
+ x="91.040474"
+ y="130.69762"
+ id="text10"><tspan
+ sodipodi:role="line"
+ x="91.040474"
+ y="130.69762"
+ 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.0690111"
+ id="tspan10">SMU</tspan></text>
+ </g>
+ <rect
+ style="fill:#00d400;stroke:#00d400;stroke-width:0.348444;stroke-dasharray:none"
+ id="rect14"
+ width="3.8659263"
+ height="4.2845292"
+ x="171.61417"
+ y="125.16281" />
+ <rect
+ style="fill:#00d400;stroke:#00d400;stroke-width:0.348444;stroke-dasharray:none"
+ id="rect18"
+ width="3.8659263"
+ height="4.2845292"
+ x="67.340591"
+ y="185.6201" />
+ <g
+ id="g25"
+ transform="translate(165.76146,89.164578)">
+ <g
+ id="g17"
+ transform="translate(-127.72192,-84.269792)">
+ <rect
+ style="fill:#ffffff;stroke:#ff00ff;stroke-width:1;stroke-dasharray:none"
+ id="rect17"
+ width="50.551014"
+ height="10.992874"
+ x="83.42868"
+ y="140.39673" />
+ <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.0690111"
+ x="108.55814"
+ y="148.16011"
+ id="text17"><tspan
+ sodipodi:role="line"
+ x="108.55814"
+ y="148.16011"
+ 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.0690111"
+ id="tspan17">SDMA</tspan></text>
+ </g>
+ <g
+ id="g24">
+ <rect
+ style="fill:#00d400;stroke:#00d400;stroke-width:0.348444;stroke-dasharray:none"
+ id="rect21"
+ width="3.8659263"
+ height="4.2845292"
+ x="9.0765572"
+ y="57.429478" />
+ </g>
+ </g>
+ <path
+ style="fill:none;stroke:#ff6600;stroke-width:1;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#ArrowWideRounded)"
+ d="M 56.046208,126.07948 H 51.151416 V 110.60136"
+ id="path21"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#ff6600;stroke-width:1;stroke-dasharray:1,1;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
+ d="m 107.63996,129.38677 h 31.91723"
+ id="path22" />
+ <g
+ id="g26"
+ transform="translate(103.05521,-16.801041)">
+ <path
+ style="fill:none;stroke:#ff6600;stroke-width:0.684499;stroke-dasharray:0.684499, 0.684499;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
+ d="M 14.374335,237.26538 H 29.87027"
+ id="path23" />
+ <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:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="41.690811"
+ y="239.50058"
+ id="text23"><tspan
+ sodipodi:role="line"
+ x="41.690811"
+ y="239.50058"
+ 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:#ff6600;stroke-width:0.0690111"
+ id="tspan23">Reset</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#ff6600;stroke-width:1;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#ArrowWideRounded)"
+ d="m 56.046208,133.69217 h -4.894792 v 58.07604"
+ id="path24"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#ff6600;stroke-width:1;stroke-dasharray:1,1;stroke-dashoffset:0;marker-end:url(#ArrowWideHeavy)"
+ d="m 95.977781,134.7651 v 15.92063 l 23.944789,0.007"
+ id="path25"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="m 116.34935,212.1162 h 16.22753"
+ id="path26"
+ sodipodi:nodetypes="cc" />
+ <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:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="159.95955"
+ y="214.49745"
+ id="text26"><tspan
+ sodipodi:role="line"
+ x="159.95955"
+ y="214.49745"
+ 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:#ffd42a;stroke-width:0.0690111"
+ id="tspan26">PSP Interaction</tspan></text>
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="m 142.93997,177.44941 12.78794,1e-5 0,-20.13841"
+ id="path27"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="m 154.31705,177.44941 24.03273,1e-5 v -46.34286 h -6.87917"
+ id="path28"
+ sodipodi:nodetypes="cccc" />
+ <rect
+ style="fill:#008033;stroke:#008033;stroke-width:1.12152;stroke-dasharray:none"
+ id="rect31"
+ width="28.449656"
+ height="23.148542"
+ x="-9.3648224"
+ y="152.25124" />
+ <rect
+ style="fill:#008033;stroke:#008033;stroke-width:1.12152;stroke-dasharray:none"
+ id="rect32"
+ width="28.449656"
+ height="23.148542"
+ x="-9.3648224"
+ y="71.817902" />
+ <rect
+ style="fill:#008033;stroke:#008033;stroke-width:1.12152;stroke-dasharray:none"
+ id="rect33"
+ width="28.449656"
+ height="23.148542"
+ x="198.46539"
+ y="152.25124" />
+ <rect
+ style="fill:#008033;stroke:#008033;stroke-width:1.12152;stroke-dasharray:none"
+ id="rect34"
+ width="28.449656"
+ height="23.148542"
+ x="198.46539"
+ y="71.817902" />
+ <path
+ style="fill:none;stroke:#00d455;stroke-width:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ d="m 69.17932,192.92241 0,-26.32924 H 34.403946"
+ id="path35"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#00d455;stroke-width:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ d="m 69.167488,192.92241 0,-26.32924 H 184.79581"
+ id="path36"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#00d455;stroke-width:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ d="m 33.58103,118.30671 147.61609,0 v 30.03021"
+ id="path37"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:none;stroke:#00d455;stroke-width:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ d="m 169.94852,126.77338 15.61123,0"
+ id="path38"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#00d455;stroke-width:1;stroke-dasharray:1, 1;stroke-dashoffset:0"
+ d="m 172.24035,148.99838 13.3194,0"
+ id="path39"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="g40"
+ transform="translate(0,1.8520834)">
+ <circle
+ style="fill:#ff8080;stroke:#ff2a2a;stroke-width:0.7;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path40"
+ cx="7.2723336"
+ cy="194.07741"
+ r="10.186459" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.23333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="7.1728497"
+ y="195.6649"
+ id="text40"><tspan
+ sodipodi:role="line"
+ x="7.1728492"
+ y="195.6649"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.0690111"
+ id="tspan40">Firmware</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="m 34.063928,177.71401 78.801482,0.26458"
+ id="path41"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="M 8.1347613,184.72547 27.537285,177.97859"
+ id="path42"
+ sodipodi:nodetypes="cc" />
+ <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.0690111"
+ x="4.5742564"
+ y="84.897125"
+ id="text42"><tspan
+ sodipodi:role="line"
+ x="4.5742559"
+ y="84.897125"
+ 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.0690111"
+ id="tspan42">Memory</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.0690111"
+ x="4.5742564"
+ y="165.33046"
+ id="text43"><tspan
+ sodipodi:role="line"
+ x="4.5742559"
+ y="165.33046"
+ 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.0690111"
+ id="tspan43">Memory</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.0690111"
+ x="212.40446"
+ y="165.33046"
+ id="text44"><tspan
+ sodipodi:role="line"
+ x="212.40446"
+ y="165.33046"
+ 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.0690111"
+ id="tspan44">Memory</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.0690111"
+ x="212.40446"
+ y="84.897125"
+ id="text45"><tspan
+ sodipodi:role="line"
+ x="212.40446"
+ y="84.897125"
+ 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.0690111"
+ id="tspan45">Memory</tspan></text>
+ <path
+ style="fill:none;stroke:#00d455;stroke-width:0.882664;stroke-dasharray:0.882664, 0.882664;stroke-dashoffset:0"
+ d="m 174.12438,77.957755 h 10.9062"
+ id="path45"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#00d455;stroke-width:0.960226;stroke-dasharray:0.960226, 0.960226;stroke-dashoffset:0"
+ d="M 34.639355,77.957755 H 47.546469"
+ id="path46"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:#ffffff;stroke:#008033;stroke-width:1;stroke-dasharray:none"
+ id="rect2"
+ width="5.0221987"
+ height="111.47456"
+ x="28.691442"
+ y="72.435623" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008033;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="-127.03961"
+ y="32.94923"
+ id="text34"
+ transform="rotate(-90)"><tspan
+ sodipodi:role="line"
+ x="-127.03961"
+ y="32.94923"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#008033;stroke-width:0.0690111"
+ id="tspan34">UMC</tspan></text>
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="m 179.15481,177.45676 h 5.90877"
+ id="path1"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:#ffffff;stroke:#008033;stroke-width:1;stroke-dasharray:none"
+ id="rect3"
+ width="5.0221987"
+ height="111.47456"
+ x="185.4259"
+ y="72.435623" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008033;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="-127.03961"
+ y="189.71486"
+ id="text35"
+ transform="rotate(-90)"><tspan
+ sodipodi:role="line"
+ x="-127.03961"
+ y="189.71486"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#008033;stroke-width:0.0690111"
+ id="tspan35">UMC</tspan></text>
+ <path
+ style="fill:none;stroke:#ffd42a;stroke-width:1;stroke-dasharray:8, 1;stroke-dashoffset:0"
+ d="m 154.31705,177.44941 24.03273,1e-5 0,-85.765777 h -4.36563"
+ id="path4"
+ sodipodi:nodetypes="cccc" />
+ <g
+ id="g5"
+ transform="translate(0,5.8208336)">
+ <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.0690111"
+ x="110.18288"
+ y="73.872185"
+ id="text14-7"><tspan
+ sodipodi:role="line"
+ x="110.18288"
+ y="73.872185"
+ 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.0690111"
+ id="tspan14-7">Graphics &amp; Compute (GC)</tspan></text>
+ <g
+ id="g4"
+ transform="translate(10.583333)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="58.022533"
+ y="83.518799"
+ id="text14-7-5"><tspan
+ sodipodi:role="line"
+ x="58.022533"
+ y="83.518799"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.0690111"
+ id="tspan14-7-6">Shader</tspan><tspan
+ sodipodi:role="line"
+ x="58.022533"
+ y="90.574348"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.0690111"
+ id="tspan20">Engine(SE)</tspan><tspan
+ sodipodi:role="line"
+ x="58.022533"
+ y="97.629898"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.0690111"
+ id="tspan21">#1</tspan></text>
+ <rect
+ style="fill:none;stroke:#aa0000;stroke-width:1.01356;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect20"
+ width="31.954243"
+ height="22.038303"
+ x="42.18652"
+ y="77.410309" />
+ </g>
+ <g
+ id="g3"
+ transform="translate(14.287499,-0.66146851)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="97.020706"
+ y="91.105995"
+ id="text24"><tspan
+ sodipodi:role="line"
+ x="97.020706"
+ y="91.105995"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.0690111"
+ id="tspan24">SE #2</tspan></text>
+ <rect
+ style="fill:none;stroke:#aa0000;stroke-width:1.01356;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect24"
+ width="31.954243"
+ height="22.038303"
+ x="81.080269"
+ y="78.071777" />
+ </g>
+ <g
+ id="g2"
+ transform="translate(-3.96875)">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="158.03574"
+ y="90.444527"
+ id="text30"><tspan
+ sodipodi:role="line"
+ x="158.03574"
+ y="90.444527"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.0690111"
+ id="tspan30">SE #N</tspan></text>
+ <rect
+ style="fill:none;stroke:#aa0000;stroke-width:1.01356;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect30"
+ width="31.954243"
+ height="22.038303"
+ x="141.93443"
+ y="77.410309" />
+ </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:#000000;fill-opacity:1;stroke:none;stroke-width:0.0690111"
+ x="132.011"
+ y="88.873962"
+ id="text4"><tspan
+ sodipodi:role="line"
+ x="132.011"
+ y="88.873962"
+ 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.0690111"
+ id="tspan4">...</tspan></text>
+ <rect
+ style="fill:none;stroke:#ff8080;stroke-width:1;stroke-dasharray:none"
+ id="rect4"
+ width="126.7475"
+ height="35.863121"
+ x="46.912045"
+ y="68.129692" />
+ </g>
+ <g
+ id="g11"
+ transform="translate(-5.0270833,-8.8635417)">
+ <rect
+ style="fill:#ffffff;stroke:#5f5fd3;stroke-width:1;stroke-dasharray:none"
+ id="rect19"
+ width="28.674419"
+ height="11.302325"
+ x="146.1279"
+ y="132.70711" />
+ <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.0690111"
+ x="160.75085"
+ y="140.62521"
+ id="text19"><tspan
+ sodipodi:role="line"
+ x="160.75085"
+ y="140.62521"
+ 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.0690111"
+ id="tspan19">VCN</tspan></text>
+ </g>
+ <g
+ id="g6">
+ <rect
+ style="fill:#ffffff;stroke:#0000ff;stroke-width:1;stroke-dasharray:none"
+ id="rect13"
+ width="28.674419"
+ height="11.302325"
+ x="43.988369"
+ y="192.98618" />
+ <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.0690111"
+ x="58.325581"
+ y="200.90428"
+ id="text14"><tspan
+ sodipodi:role="line"
+ x="58.325581"
+ y="200.90428"
+ 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.0690111"
+ id="tspan14">DCN</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/Documentation/gpu/amdgpu/amdgpu-glossary.rst b/Documentation/gpu/amdgpu/amdgpu-glossary.rst
index 30812d9d53c6..033167025fcc 100644
--- a/Documentation/gpu/amdgpu/amdgpu-glossary.rst
+++ b/Documentation/gpu/amdgpu/amdgpu-glossary.rst
@@ -30,6 +30,15 @@ we have a dedicated glossary for Display Core at
CP
Command Processor
+ CPC
+ Command Processor Compute
+
+ CPF
+ Command Processor Fetch
+
+ CPG
+ Command Processor Graphics
+
CPLIB
Content Protection Library
@@ -78,6 +87,9 @@ we have a dedicated glossary for Display Core at
GMC
Graphic Memory Controller
+ GPR
+ General Purpose Register
+
GPUVM
GPU Virtual Memory. This is the GPU's MMU. The GPU supports multiple
virtual address spaces that can be in flight at any given time. These
@@ -92,9 +104,15 @@ we have a dedicated glossary for Display Core at
table for use by the kernel driver or into per process GPUVM page tables
for application usage.
+ GWS
+ Global Wave Sync
+
IH
Interrupt Handler
+ IV
+ Interrupt Vector
+
HQD
Hardware Queue Descriptor
@@ -143,15 +161,24 @@ we have a dedicated glossary for Display Core at
PA
Primitive Assembler / Physical Address
+ PDE
+ Page Directory Entry
+
PFP
Pre-Fetch Parser (Graphics)
PPLib
PowerPlay Library - PowerPlay is the power management component.
+ PRT
+ Partially Resident Texture (also known as sparse residency)
+
PSP
Platform Security Processor
+ PTE
+ Page Table Entry
+
RB
Render Backends. Some people called it ROPs.
@@ -206,12 +233,33 @@ we have a dedicated glossary for Display Core at
TC
Texture Cache
+ TCP (AMDGPU)
+ Texture Cache per Pipe. Even though the name "Texture" is part of this
+ acronym, the TCP represents the path to memory shaders; i.e., it is not
+ related to texture. The name is a leftover from older designs where shader
+ stages had different cache designs; it refers to the L1 cache in older
+ architectures.
+
+ TMR
+ Trusted Memory Region
+
+ TMZ
+ Trusted Memory Zone
+
TOC
Table of Contents
+ UMC
+ Unified Memory Controller
+
UMSCH
User Mode Scheduler
+ UTC (AMDGPU)
+ Unified Translation Cache. UTC is equivalent to TLB. You might see a
+ variation of this acronym with L at the end, i.e., UTCL followed by a
+ number; L means the cache level (e.g., UTCL1 and UTCL2).
+
UVD
Unified Video Decoder
diff --git a/Documentation/gpu/amdgpu/apu-asic-info-table.csv b/Documentation/gpu/amdgpu/apu-asic-info-table.csv
index dee5f663a47f..f4c0f93c0582 100644
--- a/Documentation/gpu/amdgpu/apu-asic-info-table.csv
+++ b/Documentation/gpu/amdgpu/apu-asic-info-table.csv
@@ -16,3 +16,6 @@ Ryzen AI 300 series, Strix Point, 3.5.0, 11.5.0, 4.0.5, 6.1.0, 14.0.0, 14.0.0
Ryzen AI 330 series, Krackan Point, 3.6.0, 11.5.3, 4.0.5, 6.1.3, 14.0.5, 14.0.5
Ryzen AI 350 series, Krackan Point, 3.5.0, 11.5.2, 4.0.5, 6.1.2, 14.0.4, 14.0.4
Ryzen AI Max 300 series, Strix Halo, 3.5.1, 11.5.1, 4.0.6, 6.1.1, 14.0.1, 14.0.1
+Ryzen AI 9 475 / 470 / 465, Gorgon Point, 3.5.0, 11.5.0, 4.0.5, 6.1.0, 14.0.0, 14.0.0
+Ryzen AI 7 450, Gorgon Point, 3.5.0, 11.5.2, 4.0.5, 6.1.2, 14.0.4, 14.0.4
+Ryzen AI 5 440 / 435, Gorgon Point, 3.6.0, 11.5.3, 4.0.5, 6.1.3, 14.0.5, 14.0.5
diff --git a/Documentation/gpu/amdgpu/display/dc-glossary.rst b/Documentation/gpu/amdgpu/display/dc-glossary.rst
index cbe737d1fcea..accb7c05308c 100644
--- a/Documentation/gpu/amdgpu/display/dc-glossary.rst
+++ b/Documentation/gpu/amdgpu/display/dc-glossary.rst
@@ -221,9 +221,6 @@ consider asking on the amd-gfx mailing list and update this page.
TMDS
Transition-Minimized Differential Signaling
- TMZ
- Trusted Memory Zone
-
TTU
Time to Underflow
diff --git a/Documentation/gpu/amdgpu/driver-core.rst b/Documentation/gpu/amdgpu/driver-core.rst
index 3ce276272171..2c2bbf7caf1a 100644
--- a/Documentation/gpu/amdgpu/driver-core.rst
+++ b/Documentation/gpu/amdgpu/driver-core.rst
@@ -77,6 +77,37 @@ VCN (Video Core Next)
decode. It's exposed to userspace for user mode drivers (VA-API,
OpenMAX, etc.)
+It is important to note that these blocks can interact with each other. The
+picture below illustrates some of the components and their interconnection:
+
+.. kernel-figure:: amd_overview_block.svg
+
+In the diagram, memory-related blocks are shown in green. Notice that specific
+IPs have a green square that represents a small hardware block named 'hub',
+which is responsible for interfacing with memory. All memory hubs are connected
+in the UMCs, which in turn are connected to memory blocks. As a note,
+pre-vega devices have a dedicated block for the Graphic Memory Controller
+(GMC), which was replaced by UMC and hubs in new architectures. In the driver
+code, you can identify this component by looking for the suffix hub, for
+example: gfxhub, dchub, mmhub, vmhub, etc. Keep in mind that the component's
+interaction with the memory block may vary across architectures. For example,
+on Navi and newer, GC and SDMA are both attached to GCHUB; on pre-Navi, SDMA
+goes through MMHUB; VCN, JPEG, and VPE go through MMHUB; DCN goes through
+DCHUB.
+
+There is some protection for certain memory elements, and the PSP plays an
+essential role in this area. When a specific firmware is loaded into memory,
+the PSP takes steps to ensure it has a valid signature. It also stores firmware
+images in a protected memory area named Trusted Memory Area (TMR), so the OS or
+driver can't corrupt them at runtime. Another use of PSP is to support Trusted
+Applications (TA), which are basically small applications that run on the
+trusted processor and handles a trusted operation (e.g., HDCP). PSP is also
+used for encrypted memory for content protection via Trusted Memory Zone (TMZ).
+
+Another critical IP is the SMU. It handles reset distribution, as well as
+clock, thermal, and power management for all IPs on the SoC. SMU also helps to
+balance performance and power consumption.
+
.. _pipes-and-queues-description:
GFX, Compute, and SDMA Overall Behavior
diff --git a/Documentation/gpu/amdgpu/driver-misc.rst b/Documentation/gpu/amdgpu/driver-misc.rst
index 25b0c857816e..e1a964c3add2 100644
--- a/Documentation/gpu/amdgpu/driver-misc.rst
+++ b/Documentation/gpu/amdgpu/driver-misc.rst
@@ -128,3 +128,29 @@ smartshift_bias
.. kernel-doc:: drivers/gpu/drm/amd/pm/amdgpu_pm.c
:doc: smartshift_bias
+
+UMA Carveout
+============
+
+Some versions of Atom ROM expose available options for the VRAM carveout sizes,
+and allow changes to the carveout size via the ATCS function code 0xA on supported
+BIOS implementations.
+
+For those platforms, users can use the following files under uma/ to set the
+carveout size, in a way similar to what Windows users can do in the "Tuning"
+tab in AMD Adrenalin.
+
+Note that for BIOS implementations that don't support this, these files will not
+be created at all.
+
+uma/carveout_options
+--------------------
+
+.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+ :doc: uma/carveout_options
+
+uma/carveout
+--------------------
+
+.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+ :doc: uma/carveout
diff --git a/Documentation/gpu/amdgpu/enforce_isolation.svg b/Documentation/gpu/amdgpu/enforce_isolation.svg
new file mode 100644
index 000000000000..2630681f1cb9
--- /dev/null
+++ b/Documentation/gpu/amdgpu/enforce_isolation.svg
@@ -0,0 +1,654 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="67.794067mm"
+ height="88.643349mm"
+ viewBox="0 0 67.794066 88.643348"
+ version="1.1"
+ id="svg1"
+ inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
+ 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="3.5754724"
+ inkscape:cx="200.95247"
+ inkscape:cy="182.77305"
+ inkscape:window-width="3840"
+ inkscape:window-height="2083"
+ 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>
+ <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(71.49059,-1.1271925)">
+ <g
+ id="g15"
+ transform="matrix(0.42247861,0,0,0.42247861,-70.575576,-25.242317)">
+ <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="79.148567"
+ 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="79.177269"
+ 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="86.726654"
+ id="text14-7"><tspan
+ sodipodi:role="line"
+ x="-59.013123"
+ y="86.726654"
+ 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="85.975647"
+ id="text95"><tspan
+ sodipodi:role="line"
+ x="-24.387218"
+ y="85.975647"
+ 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,78.410023 V 69.962845"
+ 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="51.72607"
+ id="text6"><tspan
+ sodipodi:role="line"
+ x="-56.126556"
+ y="51.72607"
+ 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="58.416431"
+ id="text136"><tspan
+ sodipodi:role="line"
+ x="-57.861526"
+ y="58.416431"
+ 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="61.250832"
+ 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,-25.242317)">
+ <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="58.416431"
+ id="text81"><tspan
+ sodipodi:role="line"
+ x="-24.497828"
+ y="58.416431"
+ 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="61.250832"
+ 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,78.410023 V 69.962845"
+ 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="53.340443"
+ id="text82"><tspan
+ sodipodi:role="line"
+ x="-52.574932"
+ y="53.340443"
+ 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="57.376377"
+ id="text83"><tspan
+ sodipodi:role="line"
+ x="-50.045757"
+ y="57.376377"
+ 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>
+ <g
+ id="g1"
+ transform="translate(0,-16.057901)">
+ <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="-12.593401"
+ y="57.349865"
+ id="text83-59"><tspan
+ sodipodi:role="line"
+ x="-12.593401"
+ y="57.349865"
+ 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="-9.8666544"
+ y="57.349865"
+ id="text83-59-3"><tspan
+ sodipodi:role="line"
+ x="-9.8666544"
+ y="57.349865"
+ 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:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.102999"
+ x="-24.724035"
+ y="57.3466"
+ id="text83-5-9"><tspan
+ sodipodi:role="line"
+ x="-24.724035"
+ y="57.3466"
+ 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="-22.315107"
+ y="57.3466"
+ id="text83-5-9-9"><tspan
+ sodipodi:role="line"
+ x="-22.315107"
+ y="57.3466"
+ 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.937738"
+ y="57.3466"
+ id="text83-5-9-9-7"><tspan
+ sodipodi:role="line"
+ x="-19.937738"
+ y="57.3466"
+ 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="-17.56146"
+ y="57.3466"
+ id="text83-5-9-9-7-0"><tspan
+ sodipodi:role="line"
+ x="-17.56146"
+ y="57.3466"
+ 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="-15.185183"
+ y="57.3466"
+ id="text83-5-9-9-7-0-4"><tspan
+ sodipodi:role="line"
+ x="-15.185183"
+ y="57.3466"
+ 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>
+ </g>
+ <g
+ id="g2"
+ transform="translate(0,-16.057901)">
+ <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="-46.032711"
+ y="57.349865"
+ id="text83-7"><tspan
+ sodipodi:role="line"
+ x="-46.032711"
+ y="57.349865"
+ 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="-42.773308"
+ y="57.349865"
+ id="text83-7-4"><tspan
+ sodipodi:role="line"
+ x="-42.773308"
+ y="57.349865"
+ 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="-55.041409"
+ y="57.3466"
+ id="text83-5"><tspan
+ sodipodi:role="line"
+ x="-55.041409"
+ y="57.3466"
+ 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="-57.982994"
+ y="57.3466"
+ id="text83-5-3"><tspan
+ sodipodi:role="line"
+ x="-57.982994"
+ y="57.3466"
+ 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-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:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.102999"
+ x="-52.099823"
+ y="57.3466"
+ id="text83-5-6"><tspan
+ sodipodi:role="line"
+ x="-52.099823"
+ y="57.3466"
+ 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="-49.158237"
+ y="57.3466"
+ id="text83-5-6-5"><tspan
+ sodipodi:role="line"
+ x="-49.158237"
+ y="57.3466"
+ 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>
+ </g>
+ <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>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:0.463569;stroke-linecap:square;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect89"
+ width="62.753353"
+ height="10.962811"
+ x="-68.911674"
+ y="32.218185" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:2.26751px;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="-37.552006"
+ y="35.595592"
+ id="text89"><tspan
+ sodipodi:role="line"
+ x="-37.552006"
+ y="35.595592"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.26751px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle;fill:#1c241c;stroke-width:0.102999"
+ id="tspan89">Enforce Isolation</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 -57.807162,48.273529 V 44.392491"
+ 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,48.273529 V 44.392491"
+ 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>
+</svg>
diff --git a/Documentation/gpu/amdgpu/gc/index.rst b/Documentation/gpu/amdgpu/gc/index.rst
index ff6e9ef5cbee..b6b583c9dc6a 100644
--- a/Documentation/gpu/amdgpu/gc/index.rst
+++ b/Documentation/gpu/amdgpu/gc/index.rst
@@ -7,19 +7,21 @@
The relationship between the CPU and GPU can be described as the
producer-consumer problem, where the CPU fills out a buffer with operations
(producer) to be executed by the GPU (consumer). The requested operations in
-the buffer are called Command Packets, which can be summarized as a compressed
-way of transmitting command information to the graphics controller.
+the buffer are called **Command Packets**, which can be summarized as a
+compressed way of transmitting command information to the graphics controller.
The component that acts as the front end between the CPU and the GPU is called
-the Command Processor (CP). This component is responsible for providing greater
-flexibility to the GC since CP makes it possible to program various aspects of
-the GPU pipeline. CP also coordinates the communication between the CPU and GPU
-via a mechanism named **Ring Buffers**, where the CPU appends information to
-the buffer while the GPU removes operations. It is relevant to highlight that a
-CPU can add a pointer to the Ring Buffer that points to another region of
-memory outside the Ring Buffer, and CP can handle it; this mechanism is called
-**Indirect Buffer (IB)**. CP receives and parses the Command Streams (CS), and
-writes the operations to the correct hardware blocks.
+**Command Processor (CP)**. This component is responsible for providing greater
+flexibility to the **Graphics and Compute (GC)** since CP makes it possible to
+program various aspects of the GPU pipeline. CP also coordinates the
+communication between the CPU and GPU via a mechanism named **Ring Buffers**,
+where the CPU appends information to the buffer while the GPU removes
+operations. CP is also responsible for handling **Indirect Buffers (IB)**.
+
+For reference, internally the CP consists of several sub-blocks (CPC - CP
+compute, CPG - CP graphics, and CPF - CP fetcher). Some of these acronyms
+appear in register names, but this is more of an implementation detail and not
+something that directly impacts driver programming or debugging.
Graphics (GFX) and Compute Microcontrollers
-------------------------------------------
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 45523e9860fc..8732084186a4 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..b224615e1611
--- /dev/null
+++ b/Documentation/gpu/amdgpu/no_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/process-isolation.rst b/Documentation/gpu/amdgpu/process-isolation.rst
index 25b06ffefc33..03c4288aa8b1 100644
--- a/Documentation/gpu/amdgpu/process-isolation.rst
+++ b/Documentation/gpu/amdgpu/process-isolation.rst
@@ -1,3 +1,4 @@
+.. _amdgpu-process-isolation:
.. SPDX-License-Identifier: GPL-2.0
=========================
diff --git a/Documentation/gpu/amdgpu/ring-buffer.rst b/Documentation/gpu/amdgpu/ring-buffer.rst
new file mode 100644
index 000000000000..cc642c21316b
--- /dev/null
+++ b/Documentation/gpu/amdgpu/ring-buffer.rst
@@ -0,0 +1,95 @@
+=============
+ Ring Buffer
+=============
+
+To handle communication between user space and kernel space, AMD GPUs use a
+ring buffer design to feed the engines (GFX, Compute, SDMA, UVD, VCE, VCN, VPE,
+etc.). 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 model, 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), which
+indicates where the engine is currently reading packets from the ring, and a
+Write Pointer (wptr), which indicates how many packets software has added to
+the ring. When the rptr and wptr are equal, the ring is idle. When software
+adds packets to the ring, it updates the wptr, this causes the engine to start
+fetching and processing packets. As the engine processes packets, the rptr gets
+updates until the rptr catches up to the wptr and they are equal again.
+
+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.
+
+All ASICs pre-GFX11 use what is called a kernel queue, which means
+the ring is allocated in kernel space and has some restrictions, such as not
+being able to be :ref:`preempted directly by the scheduler<amdgpu-mes>`. GFX11
+and newer support kernel queues, but also provide a new mechanism named
+:ref:`user queues<amdgpu-userq>`, where the queue is moved to the user space
+and can be mapped and unmapped via the scheduler. In practice, both queues
+insert user-space-generated GPU commands from different jobs into the requested
+component ring.
+
+Enforce Isolation
+=================
+
+.. note:: After reading this section, you might want to check the
+ :ref:`Process Isolation<amdgpu-process-isolation>` page for more details.
+
+Before examining the Enforce Isolation mechanism in the ring buffer context, it
+is helpful to briefly discuss how instructions from the ring buffer are
+processed in the graphics pipeline. Let’s expand on this topic by checking the
+diagram below that illustrates the graphics pipeline:
+
+.. kernel-figure:: gfx_pipeline_seq.svg
+
+In terms of executing instructions, the GFX pipeline follows the sequence:
+Shader Export (SX), Geometry Engine (GE), Shader Process or Input (SPI), Scan
+Converter (SC), Primitive Assembler (PA), and cache manipulation (which may
+vary across 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.
+Now, with this pipeline in mind, let's assume that Job B causes a hang issue,
+but Job C's instruction might already be executing, leading developers to
+incorrectly identify Job C as the problematic one. This problem can be
+mitigated on multiple levels; the diagram below illustrates how to minimize
+part of this problem:
+
+.. 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 is also good
+for performance. Furthermore, notice some circles between jobs in the diagram
+that represent a **fence wait** used to avoid overlapping work in the ring. At
+the end of the fence, a cache flush occurs, ensuring that when the next job
+starts, it begins in a clean state and, if issues arise, the developer can
+pinpoint the problematic process more precisely.
+
+To increase the level of isolation between jobs, there is the "Enforce
+Isolation" method described in the picture below:
+
+.. kernel-figure:: enforce_isolation.svg
+
+As shown in the diagram, enforcing isolation introduces ordering between
+submissions, since the access to GFX/Compute is serialized, think about it as
+single process at a time mode for gfx/compute. Notice that this approach has a
+significant performance impact, as it allows only one job to submit commands at
+a time. However, this option can help pinpoint the job that caused the problem.
+Although enforcing isolation improves the situation, it does not fully resolve
+the issue of precisely pinpointing bad jobs, since isolation might mask the
+problem. In summary, identifying which job caused the issue may not be precise,
+but enforcing isolation might help with the debugging.
+
+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>
diff --git a/Documentation/gpu/amdgpu/userq.rst b/Documentation/gpu/amdgpu/userq.rst
index ca3ea71f7888..88f54393b220 100644
--- a/Documentation/gpu/amdgpu/userq.rst
+++ b/Documentation/gpu/amdgpu/userq.rst
@@ -1,3 +1,5 @@
+.. _amdgpu-userq:
+
==================
User Mode Queues
==================
diff --git a/Documentation/gpu/drm-mm.rst b/Documentation/gpu/drm-mm.rst
index d55751cad67c..f22433470c76 100644
--- a/Documentation/gpu/drm-mm.rst
+++ b/Documentation/gpu/drm-mm.rst
@@ -155,7 +155,12 @@ drm_gem_object_init() will create an shmfs file of the
requested size and store it into the struct :c:type:`struct
drm_gem_object <drm_gem_object>` filp field. The memory is
used as either main storage for the object when the graphics hardware
-uses system memory directly or as a backing store otherwise.
+uses system memory directly or as a backing store otherwise. Drivers
+can call drm_gem_huge_mnt_create() to create, mount and use a huge
+shmem mountpoint instead of the default one ('shm_mnt'). For builds
+with CONFIG_TRANSPARENT_HUGEPAGE enabled, further calls to
+drm_gem_object_init() will let shmem allocate huge pages when
+possible.
Drivers are responsible for the actual physical pages allocation by
calling shmem_read_mapping_page_gfp() for each page.
@@ -290,15 +295,27 @@ The open and close operations must update the GEM object reference
count. Drivers can use the drm_gem_vm_open() and drm_gem_vm_close() helper
functions directly as open and close handlers.
-The fault operation handler is responsible for mapping individual pages
-to userspace when a page fault occurs. Depending on the memory
-allocation scheme, drivers can allocate pages at fault time, or can
-decide to allocate memory for the GEM object at the time the object is
-created.
+The fault operation handler is responsible for mapping pages to
+userspace when a page fault occurs. Depending on the memory allocation
+scheme, drivers can allocate pages at fault time, or can decide to
+allocate memory for the GEM object at the time the object is created.
Drivers that want to map the GEM object upfront instead of handling page
faults can implement their own mmap file operation handler.
+In order to reduce page table overhead, if the internal shmem mountpoint
+"shm_mnt" is configured to use transparent huge pages (for builds with
+CONFIG_TRANSPARENT_HUGEPAGE enabled) and if the shmem backing store
+managed to allocate a huge page for a faulty address, the fault handler
+will first attempt to insert that huge page into the VMA before falling
+back to individual page insertion. mmap() user address alignment for GEM
+objects is handled by providing a custom get_unmapped_area file
+operation which forwards to the shmem backing store. For most drivers,
+which don't create a huge mountpoint by default or through a module
+parameter, transparent huge pages can be enabled by either setting the
+"transparent_hugepage_shmem" kernel parameter or the
+"/sys/kernel/mm/transparent_hugepage/shmem_enabled" sysfs knob.
+
For platforms without MMU the GEM core provides a helper method
drm_gem_dma_get_unmapped_area(). The mmap() routines will call this to get a
proposed address for the mapping.
diff --git a/Documentation/gpu/nova/core/todo.rst b/Documentation/gpu/nova/core/todo.rst
index 35cc7c31d423..d1964eb645e2 100644
--- a/Documentation/gpu/nova/core/todo.rst
+++ b/Documentation/gpu/nova/core/todo.rst
@@ -41,8 +41,15 @@ trait [1] from the num crate.
Having this generalization also helps with implementing a generic macro that
automatically generates the corresponding mappings between a value and a number.
+FromPrimitive support has been worked on in the past, but hasn't been followed
+since then [1].
+
+There also have been considerations of ToPrimitive [2].
+
| Complexity: Beginner
| Link: https://docs.rs/num/latest/num/trait.FromPrimitive.html
+| Link: https://lore.kernel.org/all/cover.1750689857.git.y.j3ms.n@gmail.com/ [1]
+| Link: https://rust-for-linux.zulipchat.com/#narrow/channel/288089-General/topic/Implement.20.60FromPrimitive.60.20trait.20.2B.20derive.20macro.20for.20nova-core/with/541971854 [2]
Generic register abstraction [REGA]
-----------------------------------
@@ -134,21 +141,6 @@ A `num` core kernel module is being designed to provide these operations.
| Complexity: Intermediate
| Contact: Alexandre Courbot
-IRQ abstractions
-----------------
-
-Rust abstractions for IRQ handling.
-
-There is active ongoing work from Daniel Almeida [1] for the "core" abstractions
-to request IRQs.
-
-Besides optional review and testing work, the required ``pci::Device`` code
-around those core abstractions needs to be worked out.
-
-| Complexity: Intermediate
-| Link: https://lore.kernel.org/lkml/20250122163932.46697-1-daniel.almeida@collabora.com/ [1]
-| Contact: Daniel Almeida
-
Page abstraction for foreign pages
----------------------------------
@@ -161,40 +153,16 @@ There is active onging work from Abdiel Janulgue [1] and Lina [2].
| Link: https://lore.kernel.org/linux-mm/20241119112408.779243-1-abdiel.janulgue@gmail.com/ [1]
| Link: https://lore.kernel.org/rust-for-linux/20250202-rust-page-v1-0-e3170d7fe55e@asahilina.net/ [2]
-Scatterlist / sg_table abstractions
------------------------------------
-
-Rust abstractions for scatterlist / sg_table.
-
-There is preceding work from Abdiel Janulgue, which hasn't made it to the
-mailing list yet.
-
-| Complexity: Intermediate
-| Contact: Abdiel Janulgue
-
PCI MISC APIs
-------------
-Extend the existing PCI device / driver abstractions by SR-IOV, config space,
-capability, MSI API abstractions.
-
-| Complexity: Beginner
+Extend the existing PCI device / driver abstractions by SR-IOV, capability, MSI
+API abstractions.
-XArray bindings [XARR]
-----------------------
-
-We need bindings for `xa_alloc`/`xa_alloc_cyclic` in order to generate the
-auxiliary device IDs.
-
-| Complexity: Intermediate
+SR-IOV [1] is work in progress.
-Debugfs abstractions
---------------------
-
-Rust abstraction for debugfs APIs.
-
-| Reference: Export GSP log buffers
-| Complexity: Intermediate
+| Complexity: Beginner
+| Link: https://lore.kernel.org/all/20251119-rust-pci-sriov-v1-0-883a94599a97@redhat.com/ [1]
GPU (general)
=============
@@ -233,7 +201,10 @@ Some possible options:
- maple_tree
- native Rust collections
+There is work in progress for using drm_buddy [1].
+
| Complexity: Advanced
+| Link: https://lore.kernel.org/all/20251219203805.1246586-4-joelagnelf@nvidia.com/ [1]
Instance Memory
---------------
diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index 9013ced318cb..520da44a04a6 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -506,6 +506,22 @@ Contact: Maxime Ripard <mripard@kernel.org>,
Level: Intermediate
+Convert users of of_drm_find_bridge() to of_drm_find_and_get_bridge()
+---------------------------------------------------------------------
+
+Taking a struct drm_bridge pointer requires getting a reference and putting
+it after disposing of the pointer. Most functions returning a struct
+drm_bridge pointer already call drm_bridge_get() to increment the refcount
+and their users have been updated to call drm_bridge_put() when
+appropriate. of_drm_find_bridge() does not get a reference and it has been
+deprecated in favor of of_drm_find_and_get_bridge() which does, but some
+users still need to be converted.
+
+Contact: Maxime Ripard <mripard@kernel.org>,
+ Luca Ceresoli <luca.ceresoli@bootlin.com>
+
+Level: Intermediate
+
Core refactorings
=================
@@ -878,6 +894,51 @@ Contact: Christian König
Level: Starter
+DRM GPU Scheduler
+=================
+
+Provide a universal successor for drm_sched_resubmit_jobs()
+-----------------------------------------------------------
+
+drm_sched_resubmit_jobs() is deprecated. Main reason being that it leads to
+reinitializing dma_fences. See that function's docu for details. The better
+approach for valid resubmissions by amdgpu and Xe is (apparently) to figure out
+which job (and, through association: which entity) caused the hang. Then, the
+job's buffer data, together with all other jobs' buffer data currently in the
+same hardware ring, must be invalidated. This can for example be done by
+overwriting it. amdgpu currently determines which jobs are in the ring and need
+to be overwritten by keeping copies of the job. Xe obtains that information by
+directly accessing drm_sched's pending_list.
+
+Tasks:
+
+1. implement scheduler functionality through which the driver can obtain the
+ information which *broken* jobs are currently in the hardware ring.
+2. Such infrastructure would then typically be used in
+ drm_sched_backend_ops.timedout_job(). Document that.
+3. Port a driver as first user.
+4. Document the new alternative in the docu of deprecated
+ drm_sched_resubmit_jobs().
+
+Contact: Christian König <christian.koenig@amd.com>
+ Philipp Stanner <phasta@kernel.org>
+
+Level: Advanced
+
+Add locking for runqueues
+-------------------------
+
+There is an old FIXME by Sima in include/drm/gpu_scheduler.h. It details that
+struct drm_sched_rq is read at many places without any locks, not even with a
+READ_ONCE. At XDC 2025 no one could really tell why that is the case, whether
+locks are needed and whether they could be added. (But for real, that should
+probably be locked!). Check whether it's possible to add locks everywhere, and
+do so if yes.
+
+Contact: Philipp Stanner <phasta@kernel.org>
+
+Level: Intermediate
+
Outside DRM
===========
diff --git a/Documentation/gpu/xe/xe_exec_queue.rst b/Documentation/gpu/xe/xe_exec_queue.rst
index 6076569e311c..8707806211c9 100644
--- a/Documentation/gpu/xe/xe_exec_queue.rst
+++ b/Documentation/gpu/xe/xe_exec_queue.rst
@@ -7,6 +7,20 @@ Execution Queue
.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c
:doc: Execution Queue
+Multi Queue Group
+=================
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c
+ :doc: Multi Queue Group
+
+.. _multi-queue-group-guc-interface:
+
+Multi Queue Group GuC interface
+===============================
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_guc_submit.c
+ :doc: Multi Queue Group GuC interface
+
Internal API
============