From ec92ae4d081ee92210e003b020ed24ae102606fd Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Tue, 6 Oct 2026 09:45:22 -0400 Subject: [PATCH] [Docs] (P13 W5 S0): the W5 design, its inventory and the pre-move measurements. --- docs/Disaggregated/notes/p13/README.md | 1 + docs/Disaggregated/notes/p13/W5-DESIGN.md | 208 ++++ docs/Disaggregated/notes/p13/W5-INVENTORY.csv | 995 ++++++++++++++++++ .../notes/p13/tools/w5_classify.py | 151 +++ 4 files changed, 1355 insertions(+) create mode 100644 docs/Disaggregated/notes/p13/W5-DESIGN.md create mode 100644 docs/Disaggregated/notes/p13/W5-INVENTORY.csv create mode 100644 docs/Disaggregated/notes/p13/tools/w5_classify.py diff --git a/docs/Disaggregated/notes/p13/README.md b/docs/Disaggregated/notes/p13/README.md index 750fdb95..2b5e9ad4 100644 --- a/docs/Disaggregated/notes/p13/README.md +++ b/docs/Disaggregated/notes/p13/README.md @@ -16,6 +16,7 @@ | W4(Magma) | 本地完成 | 一次性换臂(本地) | monolith 注册 wire 资源表;进程内持久映射捐赠(`DonateWireBuffer`:wire store 本就 host-visible / coherent / 常驻映射,交给前端,取 T0 的「回读无字节」语义);`GetSyncStatus` 在记录臂上对同一未提交 fence 连续轮询 64 次后提交一次(split 由 apply 线程空闲时提交,monolith 无空闲时刻);ABA 对照车道钉前端臂(其对象是前端臂的身份表,W6 随之删);`DescriptorPoolGrowth` 的 wire 预算按记录臂而非传输判断。本地 integration-gpu 3650/3650、DirectVulkan retrace 29/29(本机须 `MOBILEGL_GPU_HANG_BUDGET_MS=0`,与 CI 相同,否则 llvmpipe 上 >2 s 的提交触发挂死看门狗) | | W4b 补 monolith 登记 | 本地完成 | | `DirectGLES.Monolith.CpuMip.*`(`MGITEST_ESPRYT_FORCE_CPU_MIPMAP`)与 `DirectGLES.Monolith.StoreRead.*`(`MGITEST_ESPRYT_REFUSE_TEXTURE_READBACK_EXTENT`),各自私有日志断言本臂的日志行。StoreRead 首跑 3/4 红:别名式纹理 store 不跟随 `glCopyImageSubData`,目的 level 被标为驱动写过,驱动又拒读 → `Fatal{ReplyError, "ReadPixels"}`(Adreno 上 RGB16 / 16-bit SNORM 的真实 monolith 回归)。修复:`FollowCopy` 在别名模式下先把目的 level 取成服务端自有副本再搬窗口(从不写前端内存),`AdoptClientBoxes` 随后在该副本上落客户端的框;单元 `AnAliasingStoreFollowsACopyIntoAServerOwnedDestination` | | W4d | 部分(本地) | | monolith 记录臂的 8 个值类字段改由 `set_context_values` 记录供给(不再 residual 填充)。转发访问器替身、`kFatal` 前端指针字段删除、`PipeInputs.h` 去 `MG_State` 头并入 W6/W7(它们是删前端臂与模块边界的一部分) | +| W5 S0 | 本地完成 | | 设计见 `notes/p13/` 下的 `W5-DESIGN.md`(临时 CMake 变量 `MOBILEGL_BUILD_RECORD_ARM`,S7 一次翻转,S8 unifdef 掉)。开放三点已定:记录失败钩子在 `FatalFunnel.cpp` 静态注册;`RecordArmTable` 承接三个持久映射 / wire 延迟旋钮(`IpcTable` 仍只在 DISAGG);S7 加 mprotect 臂开关(FCL 是 JVM 进程,SIGSEGV 链接是真风险)。清单 `W5-INVENTORY.csv`(`tools/w5_classify.py`):A 385 块 / 10586 行、B 29/434、C 92/10878、D 89/4683、E 77/933、F 292/3184、N(取反 / 复合)30/1545。主机 x86_64 Release 基线:push 库 `.text` 11540563、0 个 `MG_Remote::` 符号;split 库 `.text` 12766899、1651 个 | ### G1 退役读数(ID-P13-4,2026-10-06) diff --git a/docs/Disaggregated/notes/p13/W5-DESIGN.md b/docs/Disaggregated/notes/p13/W5-DESIGN.md new file mode 100644 index 00000000..035e74c1 --- /dev/null +++ b/docs/Disaggregated/notes/p13/W5-DESIGN.md @@ -0,0 +1,208 @@ +# P13 W5 design: the record arm without MG_Remote (ID-P13-1 / A2) + +Paths are relative to ROOT = `C:\Users\yello\AndroidStudioProjects\FoldCraftLauncher\MobileGL\.claude\worktrees\p13`. Line numbers are at HEAD `88a11b81` (W4d). Apply changes by symbol name. + +## 0. Decisions + +| # | Decision | Why | +|---|---|---| +| D1 | The no-MG_Remote library is the DISAGG library minus the transport. A DISAGG-guarded block counts as record-core unless it uses the transport: names a transport symbol, or depends on a session, apply thread/role, T0/AHB adoption, shared images, a server-owned window, the server-side caps source, latch domains, codec/ring, or a split-only diagnostic. | Today the default runs the other way: push compiles only what split compiles outside `#if MOBILEGL_BUILD_DISAGGREGATED`. In 884 guarded blocks, ~80% are data plane (§3.1). | +| D2 | Temporary second macro `MOBILEGL_BUILD_RECORD_ARM`: plain CMake variable (not option(), not cache). Equals DISAGG until the flip, forced 1 at the flip, removed by unifdef before W5 closes. | Each reclassification commit leaves both trees with identical .text (free exact negative control). Flip is one bisectable commit. No stale-cache trap (W3a lesson, HANDOFF §2). | +| D3 | Moved implementation → namespace `MobileGL::MG_Record`; interfaces/seams → `MobileGL::MG_Pipe`. Directories follow link-ratchet partition: server-side under `MG_Backend/Record/`, client-side under `MG_Impl/Pipe/Verb/` and `MG_State/.../BufferState/`. | No moved symbol contains "MG_Remote" so `runtime_mode_proof.py:41` stays meaningful; no new PARTITION rows (`link_ratchet.py:109-146`); matches D12's mg_backend. | +| D4 | Every transport question from the record core goes through a function-pointer seam; MG_Remote installs the hook; the no-hook default is the monolith answer. | House pattern: `MG_Pipe/PipeSessionFail.h`, `MGPipeSetApplyThreadProbe` (`MG_Backend/MGPipe/PipeInputs.h:956`, installed `ClientSession.cpp:1878`), `g_stagedBucketResolver` (`StagedShadow.h:68-84`), `MGPipeServerArm()` constexpr-false stub (`PipeInputs.h:950-965`). | +| D5 | Move `FatalFamilies.def` and `MGFatalFamily` enum to MG_Pipe; MG_Remote keeps only wire projection `FatalCodeForFamily`. | Record-core deaths need the family vocabulary; `MG_Remote/FatalFamily.h:16` includes `protocol_generated.h` (flatbuffers include path only when DISAGG, `CMakeLists.txt:768-776`). | +| D6 | `runtime_mode_proof --mode monolith` gains a positive half: MG_Record symbols > 0 AND MG_Remote == 0. | Otherwise a W5 that silently stopped compiling the record arm into FCL shape would still pass. | + +## 1. Inventory: what the record arm takes from MG_Remote today +Method: grep `MG_Remote::[A-Za-z_:0-9]+` and `#include.*MG_Remote/` over MG_Backend, MG_Impl, MG_State, MG_Pipe, MG_Util, `MobileGL/*.cpp|h`; transitive closure by hand through `EmitTables.cpp` (verb port) and `PipeApplier.cpp` (ServerVerbSink). Classes: RC = record-core (must exist without MG_Remote); T = transport (stays, session-only); S = seam (hook, default = monolith answer). + +### 1.1 Referenced from outside MG_Remote +- `Server::StagedShadowStore` (+CoverageAdd/Has), `StagedShadow.h` — `Managers.cpp:24,1272-1274`; `VkBufferManager.cpp:18,464,478,798,833` — RC → `MG_Backend/Record/StagedShadowStore.h`, `MG_Record::` +- `ServerStagedTexture()`, `StagedTextureStore::{KeyForHandle,KeyForTwinAddress,ClientTexelBox}`, `StagedTexture{MipExtent,UploadExtent,RunImageOffset,ShrinkingAxisCount}` — `DirectGLES.cpp:33,11464-12922` (11 sites); `Managers.cpp:25,3135-10724` (~35); `WireTextureReadback.inc:355-356`; `VkTextureManager.cpp:25,2079-3154`; `VulkanRenderer.cpp:50,1718-1719`; `WireFramebuffer.inc:1703-1722`; `MG_Pipe/PipeApply.cpp:51,1439-2693` — RC → `MG_Backend/Record/StagedTextureStore.h` +- `Client::InstallMonolithVerbPort`, `EmitTables.h` — `Init.cpp:28,192` — RC → `MG_Impl/Pipe/Verb/VerbPort.h` +- `Client::PersistentMapTracker::{Instance,PushIsArmed,OnServerRole,BlockBytes}` — `BufferObject.cpp:20,63-64,100,422-480,514,933`; `BufferObject.h:203` (comment) — RC (OnServerRole → S) → `MG_State/GLState/BufferState/PersistentMapTracker.{h,cpp}` +- `Client::MarkEndTransformFeedbackCaptureTargets`, `MarkReadPixelsPackBuffer`, `GpuWritePending.h` — `GL_Drawing.cpp:16,1393`; `GL_Framebuffer.cpp:20`; `PipeFill.cpp:52`; `TextureEmit.h:73` — RC → `MG_Impl/Pipe/Verb/GpuWriteSet.{h,cpp}` +- `Client::{BufferWritebackSliceBytes, AwaitBufferWriteback}` — `BufferObject.cpp:595,622` — S (defaults 0 / return) → `MG_Pipe/PipeClientSeam.h` +- `Client::BufferWritebackIsReachable` — `BufferObject.cpp:628` — RC (pure: `GpuWritePending.cpp:184-187`) → GpuWriteSet +- `Client::MGPipeStageChunkBytes` — `PipeFill.cpp:1081`; `TextureEmit.h:568` — S (default 0) → PipeClientSeam +- `MG_Remote::SessionLatch`, `MGFatalFamily::ProtocolCorruption` — `DirectGLES.cpp:3219-3220` (inside a DataArmIsRecord() arm) — S → `MG_Pipe::MGPipeRecordLatch`; family RC → `MG_Pipe/PipeFatalFamily.h` +- `Server::ServerLoopInstance().Backend()` (caps source) — `Utils.cpp:56`; `DirectVulkan.cpp:1045-1046`; `VertexInputStateFactory.cpp:215-216,467,614-615`; `VulkanRenderer.cpp:712` — S (K semantics) → `MG_Backend::ApplyRoleBackend()` seam installed by ServerLoop +- `Server::ServerLoop::OnApplyThread`, `Detail::g_applyThreadKey` — `Managers.cpp:243,3317-3319`; `DirectVulkan.cpp:107,1828`; `SlotAllocator.cpp:26,38,63`; `MipmapStorage.cpp:70`; `PipeApply.cpp:1787` — T (role guards; stay DISAGG) +- `Transport::AdoptT0::*` — `Managers.cpp:1354,2839,2974,2977,3043`; `VkBufferManager.cpp:20,824,874,876,1043`; `VkBufferObject.cpp:12,134` — T +- `Server::SharedImages::*`, `SharedImageRegistry.h` — `DirectGLES.cpp:35,18112`; `VkTextureManager.cpp:27,2155-3023`; `VulkanRenderer.h:28,780`; `VulkanRenderer.cpp:53`; `WireSharedImage.inc`, `WireYuvImage.inc` — T (stubs needed §3.4) +- `Client::EmitObjectDeathRecord`, `WireTables.h` — `Managers.cpp:30,274`; `DirectVulkan.cpp:27,83,108` — T (only under Transport != Monolith) +- `Client::{ClientSession,RunsAsTheServerRole,CapsMirrorInstance,ContextValuesWireLive,EmitApplierResetRecord,ClientWireRecordsEmitted,Send*ContextFrame,EmitBindContextRecord,ContextFrameEmit,BackendObject_Remote,ClientSessionInstance}`; `Server::{ServerSession::Active}`; `MGCapsServerConsumes`; `Client::AdoptTierIsEmulate` — `PipeFill.cpp` (33 refs); `EGLImpl.cpp` (18); `GL_Getter.cpp:3013-3062`; `ResourceTracker.h:607`; `PipeApply.cpp:1735-1786,2734`; `MG_Backend/Init.cpp:162-400` — T +- `Client::{ResetServerProbeCache,ConfiguredServerAvailable}` — `Init.cpp:111,253` — T +- `Wire::kSegEvent`, `Transport::LinkSegment::Event` — `ResourceTracker.h:602,610` — T +- `Client/SlotCaps.h` (header-only macros) — `GL_Drawing.cpp:23`, `GL_Getter.cpp:46`, `GL_Query.cpp:19`, `GL_Sync.cpp:17`, `GL_Texture.cpp:41`, all unguarded — T-shim already safe without DISAGG (`SlotCaps.h:138-149`); optional move to `MG_Impl/GLImpl/SlotCaps.h` (S9) + +### 1.2 Transitive closure of the verb port (`MG_Remote/Client/EmitTables.cpp`) +- `VerbChannel`, `ChannelFor`, `ApplyOnMonolithPort`, `MonolithVerbSink`, `MonolithReplySink` (256-437): depends on ClientSession (EmitAndWait*, MaxReplyBytes, RequireReadPixelsReplyFits, Encoder().StageBytes), Wire::{WireTail,ReplySink}, Server::ServerVerbSink — RC once the session is behind a `VerbSession` interface +- `RequireSession` (222-234): ClientSession::Active, SessionFail(NoClientSession) — T (becomes the resolver MG_Remote installs) +- `BeforeReadOnlyVerb` (239-242): PushPersistentMapsBeforeVerb (tracker), MGPipeDrainDeferredDestroys (`PipeMutation.h:216`, DISAGG-gated) — RC (+ drain gets no-op non-DISAGG stub) +- The 51 ported emitters (InstallMonolithVerbPort list 2325-2384): Clear ×9, Draw ×20, Dispatch ×2, Blit ×2, CopyTex ×2, CopyImage, GenerateMipmap, ReadPixels, GetTex(ture)Image ×2, BindImageTexture, ShaderStorageBlockBinding, XFB ×6 (443-1760 + TextureReadbackEmit.inc): OwnedDrawInputs, GpuWriteSet, PersistentMapTracker, MGPipeTextureEmitterInstance, MGPipeFramebufferEmitter, ResourceTracker, E2 knobs (g_dropDrawEmission, 100-181) — RC +- `RequireReadbackReplyComplete` (1112-1140): ClientSession::DeviceLost, ConfirmLossAfterDecline, SessionFail(ReplyError/ReadbackDeclined/ReplyStatusInvalid/ReadbackReplyShort) — RC + S (DeviceLost/ConfirmLoss) + record-fail seam +- `EmitMemoryBarrier*`, `EmitPatchParameteri` (1546-1560, 1759): VerbChannel — RC (not ported; harmless to move) +- `EmitPresent`, fences (1908-2024, RememberFenceSignaled, poll escalation Ipc.PollEscalate), QueryEmit.inc, AnswerGetIntegeri_v, AnswerIsTimerQuerySupported, class-C table, `BuildRemoteEmitTable` (2170-2281), ServerSetEGLSwapInterval (2244), EmitFinishWait, RemoteEmitTable — T +- Planners/readback helpers: PlanDrawInfo/Range/Indirect, RemoteIndexSizeFor, PlanReadbackBands, Scatter*, TightReadbackByteCount, ReadbackReplyIsComplete (2398-2589) — pure, RC +- `UnmigratedVerbFatal` (91-96): SessionFail(UnmigratedVerb) — RC via record-fail seam + +### 1.3 Transitive closure of ServerVerbSink (`MG_Remote/Server/PipeApplier.{h,cpp}`) +- SetBackend (105-117): ReleaseQueries/Fences (T); ServerStagedTexture().SetDeviceLimits (RC) — split with virtual OnBackendChanged() +- Table (119-133): none — RC +- OnClear, OnBlit (286-391): Wire::WireProtocolFatal(At) — RC +- OnGetTextureImage, OnReadPixels, ReadBoundFramebufferTight, ReadTextureImageTight, LandReadbackInBuffer, On*ToBuffer (459-830): Wire::ReplySink, SessionFail(ProtocolCorruption) (493), SessionLatched() (595), SessionLatch(...) (745-779) — RC via seams +- OnDrawVbo + anon helpers (832-1136): Wire::CheckDrawUserIndices (897), WireProtocolFatal(At) (934, 1061), SessionLatch (799, 873, 881) — RC; move CheckDrawUserIndices (`PipeWireCodec.cpp:640`, pure) to MG_Pipe +- OnLaunchGrid … OnCopyFramebufferToTexture (1138-1458): WireProtocolFatal (1382) — RC +- OnMapPersistent (144-147): ServerSession::AdoptStoreT0 — T +- Fences, ReportSignaledFences, QueryServer.inc (135-284): ServerSession (251), WireProtocolFatal — T (not on the port) +- OnPresent (401-457): ServerSession credit, SessionLatch — T +- OnApplierReset, OnSharedImage, OnBindContext, OnObjectDeath (1460-1775): ServerSession, ServerLoopInstance, SharedImages, Transport::AdoptT0 — T +- ReplyPool, PipeApplier (70-99, 1776-1948): rings, decoder, ClientSession::ScopedApplierEntry (1828) — T +- Interface Wire::WireVerbSink / ReplySink / WireTail / QueryResultReply (`PipeWireCodec.h:241-245, 483-490, 511-516, 518-701`): pure virtuals — RC → `MG_Pipe/PipeVerbSink.h` + +Header-only stores: StagedShadow.h depends only on FatalFunnel.h:43 (SessionFail(StageSnapshotTooNarrow) at :175). StagedTextureStore.h depends on StagedShadow.h:103, FatalFunnel.h:106 (8× SessionFail, 441-919), Config.h (RecordArmAliasesFrontend :310, Transport :1030). Both RC once the fail seam exists. +Client hooks: GpuWritePending.cpp:126-182 (rows 0-5, counters) pure frontend RC; :189-272 (slice/chunk/await) S. PersistentMapTracker.cpp needs Ipc.PersistentBlockKb (:703) and Ipc.PersistentHashSuppress (:1052) RC knobs; ServerLoop::OnApplyThread (:717) S (use MGPipeServerArm()); ClientSession::DeviceLost (:760) S; AdoptTierIsEmulate (:1261-1290) T — keep in MG_Remote under the same symbol name (it's in the ratchet baseline). + +### 1.4 DISAGG-only declarations outside MG_Remote the record arm needs (must be unguarded) +- Applier verb handles: VerbIndirectBuffer…ClearVerbHandles `MG_Pipe/PipeApply.h:876-904` +- Respecified-level extents: `PipeApply.h:1312-1335`, `MGPipeTypes.h:466-485` +- ShadowAllocationBytesFor `PipeResource.h:56-84` (tracker needs it) +- OwnedDrawInputs.h:12 (DISAGG) +- Config data-arm predicates (`Config.h:739-767`), MonolithTakesRecordArm / InitDataArm (`ConfigLoader.cpp:41,462-488,737`) +- Magma wire arm members `VulkanRenderer.h:632-916` and all Wire*.inc except WireSharedImage.inc / WireYuvImage.inc +- Magma depth-resolve probe WireDepthResolveProbe.cpp (today in MG_Remote source list `CMakeLists.txt:675-679`); POST hooks `DriverBugProbes.cpp:14,2482`, `DriverPost.cpp:3031` +- Fatal family enum values `MGPipeFatalFamily::{ProtocolCorruption,DeviceLost}` (`PipeSessionFail.h:57-63`) + +## 2. Target layout +### 2.1 Files +- `MobileGL/MG_Pipe/PipeVerbSink.h` (SERVER header): MGPipeVerbSink, MGPipeReplySink, MGPipeVerbTail, MGPipeQueryResultReply (from PipeWireCodec.h:241-245, 483-701). PipeWireCodec.h keeps `using WireVerbSink = MG_Pipe::MGPipeVerbSink;` etc. so the decoder doesn't change. +- `MobileGL/MG_Pipe/FatalFamilies.def` (moved), `MG_Pipe/PipeFatalFamily.h` (new): MG_Pipe::MGFatalFamily, FatalFamilyName, MGFatalFamilyCount. MG_Remote/FatalFamily.h keeps FatalCodeForFamily + `namespace MG_Remote { using MG_Pipe::MGFatalFamily; using MG_Pipe::FatalFamilyName; }`. +- `MobileGL/MG_Pipe/PipeSessionFail.h` (extended) + defaults in `MG_Pipe/PipeApply.cpp` next to MGPipeSessionFail (:141): `[[noreturn]] MGPipeRecordFail(MGFatalFamily, fmt, ...)`, `bool MGPipeRecordLatch(...)`, `bool MGPipeRecordLatched()`, `MGPipeProtocolFatal(what, detail)` / `MGPipeProtocolFatalAt(...)` (same line text as PipeWireCodec.cpp:416-423), `MGPipeInstallRecordFailHooks(fail, latch, latched)`. Defaults: format into 512 bytes, MGLOG_F plus a stderr echo (as FatalFunnel.cpp:105-110, so death tests in push tree still match), then abort. Latch defaults to fail; latched defaults to false. +- `MobileGL/MG_Pipe/PipeClientSeam.h` (+ defaults in PipeFill.cpp or small `MG_Impl/Pipe/Verb/ClientSeam.cpp`): hooks StageChunkBytes() (0), WritebackSliceBytes() (0), AwaitWriteback(BufferObject&) (return), SessionDeviceLost() (false), ConfirmLossAfterDecline(ms) (false). BufferObject forward-declared. +- `MobileGL/MG_Backend/Record/StagedShadowStore.h`, `StagedTextureStore.h` (SERVER/core): MG_Record:: stores; SessionFail → MGPipeRecordFail. +- `MobileGL/MG_Backend/Record/RecordVerbSink.{h,cpp}` (SERVER/core): MG_Record::RecordVerbSink : MG_Pipe::MGPipeVerbSink with every RC method from §1.3, tallies, LastDrawRecord. Must not include Transport/, Wire/, , ClientSession.h. +- `MobileGL/MG_Backend/Record/ApplyRoleBackend.{h,cpp}`: `MG_Backend::BackendObject* ApplyRoleBackend()`: hook result under a transport, else pActiveBackendObject. ServerLoop installs the hook. +- `MobileGL/MG_Impl/Pipe/Verb/VerbPort.{h,cpp}`, `TextureReadbackEmit.inc` (moved) (FRONTEND): MG_Record::VerbSession (abstract: EmitAndWait, EmitAndWaitTails, MaxReplyBytes, RequireReadPixelsReplyFits, StageBytes, ConfirmLossAfterDecline), SetVerbSessionResolver, VerbChannel, all VerbChannel emitters, planners, readback helpers, E2 knobs, ApplyOnMonolithPort, AssignVerbEmitters(table) (all VerbChannel slots), InstallMonolithVerbPort(table) (the 51), MonolithVerbPortInstalled(). On the port VerbChannel keeps the session pointer null so monolith pays no virtual call. +- `MobileGL/MG_Impl/Pipe/Verb/GpuWriteSet.{h,cpp}` (FRONTEND): GpuWritePending.cpp:28-187 (enum, rows, counters, GpuWriteSetIsClientSide, BufferWritebackIsReachable). +- `MobileGL/MG_State/GLState/BufferState/PersistentMapTracker.{h,cpp}` (FRONTEND): whole tracker except AdoptTierIsEmulate. OnServerRole() → MG_Pipe::MGPipeServerArm(); DeviceLost → client seam; knobs → MG_Config::RecordArm. In MG_State because BufferObject.cpp calls it and MG_State includes nothing from MG_Impl today. +What stays in MG_Remote and shrinks: +- Client/EmitTables.cpp: BuildRemoteEmitTable calls MG_Record::AssignVerbEmitters(table) after the class-C block; keeps fences, queries, Present, SwapInterval, class A/C, per-package static_asserts (2128-2168), EmitFinishWait, RemoteEmitTable; defines `ClientVerbSession final : MG_Record::VerbSession` over ClientSession&; the resolver (formerly RequireSession) installed in BuildRemoteEmitTable. +- Client/GpuWritePending.cpp: keeps AwaitBufferWriteback, BufferWritebackSliceBytes, MGPipeStageChunkBytes[For] and installs them into PipeClientSeam (static registration). +- Server/PipeApplier.{h,cpp}: ServerVerbSink : public MG_Record::RecordVerbSink; overrides OnMapPersistent, fences, queries, OnPresent, OnApplierReset, OnObjectDeath, OnBindContext, OnSharedImage, OnBackendChanged(). ReplyPool and PipeApplier unchanged. +- FatalFunnel.cpp: registers record-fail hooks statically (namespace-scope initializer calling MGPipeInstallRecordFailHooks(&SessionFail-adapter, &SessionLatch-adapter, &SessionLatched)); hook globals must be constant-initialized. Static (not role-init) because both roles call SessionFail directly today, unit cases included; keeps SessionFaultCount() and SessionFault publish byte-identical in every DISAGG process. Existing MGPipeSessionFail (four families, server-role install) untouched; merging = W7 hygiene. +- WireTables: EmitObjectDeathRecord, RunsAsTheServerRole, EmitApplierResetRecord, ContextValuesWireLive stay (all T). +Naming rule: rename namespace only (MG_Remote::Server::/Client:: → MG_Record::), keep identifiers (ServerStagedTexture, RemoteDrawBindings, PlanDrawInfo…) so test suites keep names (G14); change is a sed. No forwarding headers under MG_Remote/ for product code; temporary forwarding header for Wire test sources OK until S8. +Port install site: move the InstallMonolithVerbPort call from `MobileGL/Init.cpp:191-193` to top of MG_Impl::Init() (`MG_Impl/Init.cpp:23`), right after MG_Backend::Init() (`Init.cpp:185,197`). Same behaviour; removes the Init.cpp (SHARED) → FRONTEND edge W7's server-only link target would trip on. + +### 2.2 CMakeLists.txt +- After flatbuffers guard (:538-553): `set(MOBILEGL_BUILD_RECORD_ARM ${MOBILEGL_BUILD_DISAGGREGATED})` (normal variable). Always emit `-DMOBILEGL_BUILD_RECORD_ARM=0|1` next to :741-743. +- New block `if (MOBILEGL_BUILD_RECORD_ARM) list(APPEND SOURCE_FILES ...)` between the push list (:556-578) and the MG_Remote list (:580-681): MG_Backend/Record/RecordVerbSink.cpp, MG_Backend/Record/ApplyRoleBackend.cpp, MG_Impl/Pipe/Verb/VerbPort.cpp, MG_Impl/Pipe/Verb/GpuWriteSet.cpp, MG_State/GLState/BufferState/PersistentMapTracker.cpp, MG_Backend/DirectVulkan/Renderer/WireDepthResolveProbe.cpp (moved out of :679). +- MG_Remote files at :632, :646-647, :649 stay, smaller. +- S7: `set(MOBILEGL_BUILD_RECORD_ARM ON)` unconditionally. S8: delete the variable and definition; fold the block into SOURCE_FILES (:308). +- flatbuffers/glvnd include dirs (:768-776) stay DISAGG-only = compile-time proof the record core doesn't reach the protocol header. + +## 3. Guard strategy +### 3.1 Counts (opening lines `^\s*#\s*(if|elif|ifdef|ifndef).*MOBILEGL_BUILD_DISAGGREGATED`) +MG_Backend 631 (613 `#if MOBILEGL_BUILD_DISAGGREGATED` blocks); MG_Impl 119 (118); MG_State 87 (86); MG_Pipe 39 (38); MG_Util 17 (17); MobileGL/*.cpp|h 12 (12); MG_Test 71; MG_IntegrationTest 20 (+ ~30 `if (MOBILEGL_BUILD_DISAGGREGATED)` in its CMake). +Other spellings: 13 `#if !MOBILEGL_BUILD_DISAGGREGATED`: DirectGLES.cpp:8553,11148; DirectVulkan.cpp:141,204,226; VkSamplerManager.cpp:560; VulkanRenderer.cpp:1485,4837,5410; VulkanRenderer.h:574,586,2149; ProgramArtifactsCodec.cpp:392. 6 compound: Managers.cpp:2680, VkBufferManager.cpp:22, EGLImpl.cpp:620 (&& __ANDROID__); VulkanRenderer.cpp:71,15343; Managers.cpp:3923 and PipeApply.cpp:1247 (VERIFY && !DISAGG). 1 diagnostic-shape guard PipeInputs.h:30. +Block classification (nesting-aware walk, comments excluded): +- A no transport token: 369 blocks, 8,713 lines (MG_Backend 304 / Impl 27 / Pipe 11 / State 21 / Util 4 / top 2) +- F neither transport nor record tokens: 263, 1,592 (176/31/14/32/8/2) +- E transport semantics, no MG_Remote symbol: 105, 1,254 (55/17/4/22/5/2) +- B names an MG_Remote symbol only: 46, 658 (15/23/2/3/0/3) +- C names MG_Remote AND record terms: 65, 9,464 (37/16/5/6/0/1) +- D transport semantics and record terms: 36, 3,155 (26/4/2/2/0/2) +Transport token list: ClientSession, ServerSession, ServerLoop, Transport::, MG_Config::Ipc, SharedImage, AdoptT0/T0/externalAhb, RunsAsTheServerRole, CapsMirror, SessionLatch, ServerRole, SplitRoles, TransportMode::Spawn/InProcess, ServerOwnedWindow, ServerSetContextLive, DeviceLost, RoleSplit, ApplyThread, MGPipeServerArm, MGPipeSessionLive, ClientBlock, EndedServerSession. +Sampling: F in DirectGLES.cpp: 43 blocks, 6 transport (:1183,:1429 T0 retires; :16128,:17054 window extent; :17024 swap interval; :18006 server-context-live), 37 handle-arm memos/XFB role keys/epochs → F ≈ 85% record. E mostly role guards that stay (MipmapStorage.cpp 18 Refuse…FromApplyThread; PipeFill.cpp 21). +Expected: ~690 blocks move to RECORD_ARM (A 369 + ~224 F + record halves of C/D), ~250 stay DISAGG (B 46 + ~100 E + ~40 F + transport halves of C/D). + +### 3.2 Mechanics +1. Script (extend HANDOFF §3's pyunifdef.py): emit reviewed CSV {file, open line, close line, class, rule hit}; rewrite class A and reviewed-record F blocks `#if MOBILEGL_BUILD_DISAGGREGATED` → `#if MOBILEGL_BUILD_RECORD_ARM`; rewrite every `#if !MOBILEGL_BUILD_DISAGGREGATED` → `#if !MOBILEGL_BUILD_RECORD_ARM` (frontend-arm variants of no-MG_Remote build, vanish at flip); rewrite `VERIFY && !DISAGG` (2 sites) → `VERIFY && !RECORD_ARM`; leave B, E, transport-classified F; skip `MG_Pipe/generated/` (decoder hook from gen_pipe.py:994,1039; transport) and C/D (hand pass). +2. Bias: when in doubt classify as record (wrong-record block that names transport fails to compile in push tree at S7 = loud net; wrong-transport only loses a record path in FCL = quiet). +3. Exceptions staying DISAGG on purpose: PipeInputs.h:30 (MOBILEGL_PIPE_POISON armed by DISAGG — FCL must not pay per-read poison checks); Ipc.StrictErrors / Ipc.Audit uses; m_serverStampedVerb (PipeInputs.h:760); compound `&& __ANDROID__` / `!_WIN32` guards (T0 / sync_file). + +### 3.3 Idioms +- Nested guard: outer `#if MOBILEGL_BUILD_RECORD_ARM`, inner `#if MOBILEGL_BUILD_DISAGGREGATED` around transport lines. Examples: Managers.cpp:1257-1376 (ServerStaged() and RequireStagedCoverageForPendingRanges record; T0 retire machinery transport); VkBufferManager.cpp:243-1211 (AdoptT0 at 824-1043); BufferObject.cpp:443-530. +- Transport ternary: split `cond = Transport != Monolith ? MG_Remote::X() : recordExpr;` into DISAGG-only wireX and unguarded `wireX || recordExpr`. Examples: PipeFill.cpp:3549-3566 (contextValuesWireLive); the six caps reads become ApplyRoleBackend(). +- Stubs: in VulkanRenderer.h `#if !MOBILEGL_BUILD_DISAGGREGATED` inline no-ops for AcquireNotedSharedImages(), AcquireSharedImage(...), VkTextureManager::HasNotedSharedImageUses(); WireDraw.inc:252,814,891 and WireFramebuffer.inc:168 stay unguarded. Same for MGPipeDrainDeferredDestroys (PipeMutation.h:216). Precedent PipeInputs.h:960-965. +- Role guards (`if (Transport != Monolith && !OnApplyThread())`): leave under DISAGG (no-ops in monolith). + +### 3.4 Hand-attention (C/D) +- VkTextureManager.cpp:1869-3266, VkTextureManager.h:607-682 (1,393 / 74 lines, 36 SharedImage refs): handle-keyed texture arm → record; shared-image import and YUV stay DISAGG. +- VulkanRenderer.h:151-216, 632-916: m_wire* record; SharedImage*/m_sharedImageReads (:727-805) DISAGG — split members, add stubs. +- WireDraw.inc, WireFramebuffer.inc (whole-file guard) → RECORD_ARM using stubs. WireSharedImage.inc, WireYuvImage.inc stay DISAGG. +- VulkanRenderer.cpp:15343-15458 device extensions: AHB-import extension DISAGG; renderpass2 depth resolve, stencil export, robustness2 → record (plan §1.2 device row). Device smoke deferred. +- VkBufferManager.cpp:243-1211 T0 import: nested guard; Ipc.WireDeferredMb (:1114) → MG_Config::RecordArm.WireDeferredMb. +- VertexInputStateFactory.cpp:396-534: :467 reads ServerLoopInstance().Backend() INSIDE the record arm → ApplyRoleBackend(). Also fixes a latent W4 divergence: on monolith the server loop has no backend so native fp64 is never taken there. +- UniformManager.cpp:3153-3207, VulkanRenderer.cpp:705-716, DirectVulkan.cpp:1038-1052, Utils.cpp:49-70 caps-source ternaries → ApplyRoleBackend(). +- DirectGLES.cpp:18107-18982, Managers.cpp:8274-8433 shared images: stay DISAGG. +- Managers.cpp:231-283, 354-464, 3281-3334 object-death record, twin drop per ended session, epoch pin: stay DISAGG (transport K). +- DirectGLES.cpp:3212-3225 MG_Remote::SessionLatch in record arm → MG_Pipe::MGPipeRecordLatch. +- MG_Pipe/PipeApply.cpp:122-268 MGPipeSessionLatch seam impl: unguard seam bodies so record-core callers link without MG_Remote; DeviceLost/ProtocolCorruption enum values in PipeSessionFail.h:57-63 lose their guard. +- PipeApply.cpp:1428-1485, 2692 staged-texture uses → record. PipeApply.cpp:1735, 1786, 2734 (ServerSession, ClientSession, AdoptTierIsEmulate) stay DISAGG. +- MG_Backend/MGPipe/PipeInputs.cpp:50-597, PipeInputs.h:889-1009 role/dual block: stay DISAGG with stubs where record code calls them. +- Config.h:465-767, ConfigLoader.cpp:449-725: §4. +- EGLImpl.cpp, MG_Backend/Init.cpp:70-366, PipeFill.cpp:355-494, 999-1065, SlotAllocator.*, MipmapStorage.cpp: stay DISAGG. +- DirectVulkan.cpp:141-379, VulkanRenderer.cpp:1485-1578, 4837-4908, VulkanRenderer.h:574-592, 2149 (`!DISAGG`): deleted at S8 (plan §1.1 g_programResourceCaches item; replacement = what DISAGG already uses, LinkArtifacts). + +### 3.5 Test guards +- Unit: move StagedTextureStoreTest (27), StagedShadowTest (5), StagedShadowProductionTest (8), StagedTextureProductionTest (4), RemoteDrawPlan (7), RemoteReadback (10), PersistentMapWritability/FaultOwnership (6) from MG_Test/Wire/ (DISAGG-only, MG_Test/CMakeLists.txt:111-116) into MG_Test/Record/, registered under `if (MOBILEGL_BUILD_RECORD_ARM)`, unconditional after S8; suite names unchanged. +- Other unit files: SplitBufferTest.cpp, ResourceEmitTest.cpp, TextureEmitTest.cpp, SanityTest.cpp use Ipc.PersistentBlockKb and MG_Remote headers; reclassify their 71 guards with the same script. +- Integration: split dataArmIsRecord out of SplitRuntimePeek (DISAGG-only via MGITEST_SPLIT_RUNTIME_PEEK, MG_IntegrationTest/CMakeLists.txt:1936-1940) into a RecordArmPeek compiled under RECORD_ARM. Six scenarios branch on it: CopyImageStoreReadbackScenario.cpp:133, DescriptorPoolGrowthScenario.cpp:113, GenerateMipmapServerScenario.cpp:137,178, GpuWrittenDrawInputScenario.cpp:241, WireIndirectDispatchScenario.cpp:76, WireIndirectDrawScenario.cpp:93 — otherwise they'd assert the frontend arm in the push tree after the flip. +- Skip trap: `mgl_itest_probe_for_symbol(... "MobileGL/MG_Remote/Client" "IsLivePersistentMap")` (MG_IntegrationTest/CMakeLists.txt:1964-1977) silently turns PersistentCoherentMapScenario's membership assertion into a skip when the tracker moves. Repoint in the same commit. + +### 3.6 Scripts policing guards / MG_Remote paths +- scripts/ci/runtime_mode_proof.py:32-44, self-test :124-148: monolith = MG_Remote == 0 AND MG_Record > 0 (anchor on MG_Record::RecordVerbSink's vtable, survives LTO); disaggregated: both > 0. Fixtures for "monolith without MG_Record" and "disaggregated without MG_Record" (both red). Land at S7. +- scripts/link_ratchet.py:109-146 PARTITION, :184-187 REQUIRED_FLAGS: no rows needed. Re-run at S4: symbol list should be unchanged (baseline referees keep names: MG_Remote::Client::AdoptTierIsEmulate, EmitObjectDeathRecord, ClientSession::* …). If it moves, rebaseline in same commit naming the cause. Optional rows MG_Backend/Record/ → SERVER. +- scripts/check_include_closure.py PROBES: add probe `record-core` over MG_Backend/Record/StagedTextureStore.h, MG_Pipe/PipeVerbSink.h, MG_Impl/Pipe/Verb/VerbPort.h, MG_Pipe/PipeFatalFamily.h; Forbidden MobileGL/MG_Remote/ and 3rdparty/flatbuffers/. Text mode blind to #if (docstring :28-35) so even a guarded MG_Remote include reds → seams are the only option. Bump --expect-probes 4 → 5 in test.yml:2395; MG_Test/Purity/CMakeLists.txt:10 passes no --expect-probes. +- scripts/ci/fatal_census.py: FAMILIES_DEF (:113) → MG_Pipe/FatalFamilies.def; Rule-2 regexes (:176,:182) add `(?, , unconditionally; non-DISAGG list still supports WIN32 (CMakeLists.txt:707-712) and APPLE. Guard mprotect arm with `#if defined(__linux__) || defined(__ANDROID__)`, fall back to hash arm (MprotectArmAvailableForTest models "unavailable", :840). +6. FCL process is a JVM: tracker's SIGSEGV handler chains by design (PersistentMapTracker.cpp:54-61,308-328), installs lazily after the JVM — first exposure to FCL's HotSpot; device smoke deferred. Confirm a knob turns the mprotect arm off (none visible; consider one at S7). Memory: shadows round to whole pages (PipeResource.h:56-84); measure RSS on MC 26.3 corpus (record only, ID-P13-2). +7. FCL APK binary size: ~20k guarded lines become compiled (A ≈ 8.7k + ~1.35k F + ~10k record halves of C/D) + ~6.5k moved from MG_Remote − ~0.6k !DISAGG arms ≈ half of MG_Remote's ~46k → ~+8% source lines for FCL lib. Release has ThinLTO + --gc-sections (CMakeLists.txt:150-169). Measure at S0 and S7 (Release aarch64 .text of push lib, split lib, post-flip push lib); record, not a gate. +8. Per-draw cost in FCL: port planning/sink, page-rounded shadows, loss of monolith-only TrySetupDrawFastPath (plan W4a risk). Recorded, not gated (ID-P13-2). +9. Transport-negative control stays meaningful: push lib still has no transport parser; retrace_pull_library_control.sh must red for the same sentence; re-run at S7. +10. Magma: DirectVulkan integration runs only in CI (note: user now allows local DV integration runs), so S3/S7 Magma correctness (shared-image stubs, device extensions) rests on CI; split Magma commits so a red bisects. + +## 6. Steps (each keeps DISAGG split tree and no-MG_Remote push tree green) +Local loop (HANDOFF §3): build_split.sh, build_push.sh, itest.sh, one suite at a time, then skip census vs previous step. +- S0: measurements only — record .text, nm counts (MG_Remote, MGPipeApply), push JUnit set and skip list, ratchet report, fatal census for split/push/verify trees. Commit the classification CSV as the W5 inventory under docs/Disaggregated/notes/p13/. Tests: none. +- S1: seams, additive — MG_Pipe/PipeFatalFamily.h + moved .def (MG_Remote/FatalFamily.h keeps projection + aliases); MGPipeRecordFail/Latch/Latched/ProtocolFatal with static registration in FatalFunnel.cpp; MG_Pipe/PipeVerbSink.h + PipeWireCodec.h aliases; PipeClientSeam.h, ApplyRoleBackend; RecordArmTable; script updates fatal_census (path, regex, funnel), ph_latch_sites regex. Push gains only seam symbols. Tests: both trees ctest -L unit; new seam unit cases (default death writes Fatal{…} to stderr; DISAGG hook moves SessionFaultCount); fatal_census.py --self-test and run; ph_latch_sites.py --self-test; runtime_mode_proof --mode monolith (MG_Remote = 0). +- S2: add MOBILEGL_BUILD_RECORD_ARM (= DISAGG). Script rewrite of class A, reviewed F, !DISAGG and VERIFY&&!DISAGG guards (§3.2). One commit per directory: MG_State, MG_Impl, MG_Pipe, MG_Util, DirectGLES, DirectVulkan, top-level, tests. wire_declines_audit accepts the new guard. Invariant: .text and nm byte-identical to S1 in both trees. Tests: objdump -d / sha of .text diff empty for push, split, verify; wire_declines_audit.py --self-test; unit. +- S3: hand-split C/D (§3.4), add stubs, transport-ternary idiom; caps reads → ApplyRoleBackend() (installed by ServerLoop). Invariant: push byte-identical to S1. Tests: split tree full unit, integration-gpu monolith and inproc, split/spawn/tcp, retrace (230/236). Magma via CI (or locally now that it's allowed). +- S4: code motion out of MG_Remote, still compiled only when RECORD_ARM — stores → MG_Backend/Record/; PipeApplier → RecordVerbSink + ServerVerbSink; EmitTables → VerbPort + MG_Remote remote table and ClientVerbSession; GpuWritePending → GpuWriteSet + seam impl; tracker → MG_State; WireDepthResolveProbe.cpp to RECORD_ARM list; port install → MG_Impl::Init; test relocation to MG_Test/Record/; IsLivePersistentMap probe path; new include-closure probe (--expect-probes 5); ph_latch_sites FILES and PeerLatchTest rows. Invariant: push byte-identical to S1. Tests: split tree full as S3 + link_ratchet.py (baseline unchanged or named rebaseline), check_include_closure.py --mode both --require-all --expect-probes 5, fatal_census --write-baseline diff reviewed, ph_latch_sites.py; nm of split lib: MG_Record > 0. +- S5: Config.h / ConfigLoader.cpp predicates and InitDataArm / InitRecordArm keyed on RECORD_ARM (§4). Push byte-identical. Tests: unit; split monolith integration-gpu (MOBILEGL_PIPE_DATA_ARM=frontend and default). +- S6: integration harness — RecordArmPeek; the six scenarios read it; integration CMake `if (MOBILEGL_BUILD_DISAGGREGATED)` blocks registering monolith record-arm cases reclassified to RECORD_ARM. Push unchanged (RECORD_ARM = 0). Tests: split integration-gpu; split_coverage.py / spawn_lane_parity.py unchanged. +- S7 flip: set(MOBILEGL_BUILD_RECORD_ARM ON) unconditionally; fix compile errors (= the misclassifications); runtime_mode_proof positive half (D6); skip-census baseline rewrite (shrinking). Push now RUNS the record arm. Tests: push tree full unit; integration-gpu monolith both arms (default and MOBILEGL_PIPE_DATA_ARM=frontend); retrace monolith 230/236; retrace_pull_library_control.sh vs push lib (same red sentence); runtime_mode_proof build --mode monolith (MG_Remote = 0, MG_Record > 0); nm/.text measurement. Verify tree: unit + integration-verify. Split tree: full. CI: Magma integration, build-linux-monolith-control job. +- S8: unifdef -DMOBILEGL_BUILD_RECORD_ARM=1 over the tree (also deletes !RECORD_ARM arms: g_programResourceCaches, Magma hidden GL programs, VERIFY pins). Drop CMake variable; fold record sources into SOURCE_FILES; test CMake unconditional; retired_switches.py rule; wire_declines_audit back to one guard. Push .text identical to S7. Tests: all S7 + retired_switches.py, ratchet, include closure. +- S9 (optional, can slip to W7): Release --print-gc-sections audit of record-core dead code; move MG_Remote/Client/SlotCaps.h → MG_Impl/GLImpl/; depfile check that no file under MobileGL/MG_Remote/ appears in the push tree's deps (zero MG_Remote at include level, not just symbol level); record size and RSS deltas in README. Test: the new check's self-test (inject one include → red). +Not in W5: deleting monolith frontend arms or Transport K branches (W6); OBJECT library targets / server-only link target (W7). + +## 7. Open points for the integrator +1. Static registration of record-fail hooks in FatalFunnel.cpp vs role-init registration (§2.1). +2. RecordArmTable vs making IpcTable unconditional (lower churn but leaks transport knobs into FCL). +3. Whether the mprotect-arm kill switch for FCL bring-up (risk 6) belongs in W5 S7. + +Critical files: MG_Remote/Client/EmitTables.cpp, MG_Remote/Server/PipeApplier.cpp, Config.h, CMakeLists.txt, MG_Pipe/PipeSessionFail.h (all under the worktree's MobileGL/). + +## 8. Integrator decisions (2026-10-06) +1. Static registration in `FatalFunnel.cpp`. The hook globals are constant-initialized to the monolith defaults and replaced at namespace-scope init, so every DISAGG process (unit cases with no role init included) counts faults exactly as today. +2. `RecordArmTable`. `IpcTable` stays DISAGG-only; no transport knob reaches the FCL library. +3. Yes: S7 adds an env switch that forces the tracker's hash arm instead of the mprotect / SIGSEGV arm, logged at startup, with a unit case proving the knob reaches the tracker. The FCL process is a JVM, so the chained SIGSEGV handler is a real bring-up risk. diff --git a/docs/Disaggregated/notes/p13/W5-INVENTORY.csv b/docs/Disaggregated/notes/p13/W5-INVENTORY.csv new file mode 100644 index 00000000..497f0702 --- /dev/null +++ b/docs/Disaggregated/notes/p13/W5-INVENTORY.csv @@ -0,0 +1,995 @@ +file,open,close,lines,depth,class,cond,has_else,transport +MobileGL/Config.h,465,767,303,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,AdoptT0 Ipc. RoleSplit ServerOwnedWindow Transport != Transport == TransportMode::Spawn +MobileGL/ConfigLoader.cpp,32,42,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/ConfigLoader.cpp,449,725,277,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 MG_Config::Ipc RoleSplit ServerOwnedWindow T0 Transport != Transport == TransportMode::InProcess TransportMode:: +MobileGL/ConfigLoader.cpp,733,739,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/Init.cpp,27,30,4,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/Init.cpp,53,61,9,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SplitRoles +MobileGL/Init.cpp,109,112,4,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/Init.cpp,143,178,36,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SplitRoles +MobileGL/Init.cpp,181,183,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/Init.cpp,186,194,9,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/Init.cpp,242,248,7,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/Init.cpp,251,256,6,0,B,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/BackendObject.h,13,15,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/BackendObject.h,40,43,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/BackendObject.h,46,48,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/BackendObject.h,52,55,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/BackendObjects.h,19,58,40,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SplitRoles +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,35,81,47,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,863,885,23,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,894,906,13,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,EndedServerSession Transport != +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,965,969,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1048,1066,19,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1088,1103,16,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1142,1144,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1165,1211,47,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,Transport != +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1215,1217,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1225,1230,6,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,SharedImage +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1242,1246,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,SharedImage +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1251,1255,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,SharedImage +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1270,1272,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1298,1301,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1330,1332,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/BackendObject_DirectGLES.cpp,1369,1371,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/ContextEpoch.h,4,23,20,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,31,42,12,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,78,97,20,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,182,203,22,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,237,255,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,360,403,44,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,499,575,77,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,577,693,117,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,805,823,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,840,905,66,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1068,1168,101,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1183,1185,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1217,1221,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1289,1327,39,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1377,1390,14,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1410,1417,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1429,1431,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1436,1443,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1450,1462,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1497,1499,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1503,1529,27,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1544,1550,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1572,1600,29,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1603,1615,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1652,1666,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1686,1688,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1690,1756,67,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1790,1794,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1831,1834,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1835,1839,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1876,1878,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1885,1936,52,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,1950,1983,34,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2029,2045,17,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2065,2078,14,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2092,2094,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2101,2103,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2119,2124,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2209,2211,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2234,2242,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2252,2256,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2259,2266,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2271,2275,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2279,2291,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2300,2304,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2306,2315,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2323,2326,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2387,2404,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2633,2651,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2674,2711,38,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2728,2757,30,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,2974,2980,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,3203,3231,29,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SessionLatch +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,3343,3385,43,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,3562,3628,67,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,3720,3781,62,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,3852,3860,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,3994,4018,25,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4252,4273,22,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4286,4295,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4367,4382,16,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4389,4396,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4414,4422,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4465,4482,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4605,4607,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4613,4620,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4811,4821,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4840,4846,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4874,4887,14,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,4894,4899,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,5011,5014,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,5027,5029,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,5043,5045,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,5049,5055,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,5960,5965,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6076,6081,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6311,6319,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6335,6339,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6400,6454,55,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6460,6480,21,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6544,6548,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6572,6576,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6619,6623,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6700,6775,76,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6863,6867,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,6925,6948,24,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7042,7055,14,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7187,7204,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7241,7261,21,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7272,7274,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7278,7287,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7321,7331,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7343,7353,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7361,7368,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7436,7442,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7611,7672,62,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,7788,7865,78,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8000,8004,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8256,8278,23,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8309,8318,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8320,8324,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8326,8329,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8337,8341,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8413,8420,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8422,8426,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8428,8431,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8437,8441,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8568,8572,5,1,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8553,8584,32,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8691,8705,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8880,8892,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8967,8971,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,8973,9044,72,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,9136,9140,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,9279,9286,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,9318,9375,58,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,9448,9455,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,9487,9539,53,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,9719,9726,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,9768,9775,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,10991,11041,51,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11065,11082,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11148,11150,3,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11159,11180,22,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11182,11184,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11420,11477,58,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11550,11622,73,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11630,11634,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,11703,11777,75,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,12072,12189,118,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,12348,12373,26,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,12474,12491,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,12630,12894,265,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,12905,12938,34,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13094,13103,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13124,13128,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13150,13158,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13196,13211,16,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13285,13293,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13299,13318,20,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13392,13397,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13416,13426,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13468,13478,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13483,13487,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,13689,13692,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,14710,14713,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,14944,14978,35,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,14981,14984,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,15218,15221,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,DeviceLost +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,15304,15307,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,15428,15432,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,15751,15754,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,15849,15855,7,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,15858,15860,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,16128,16133,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,16276,16295,20,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerOwnedWindow Transport == TransportMode::Spawn +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,16603,16619,17,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,16704,16707,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17024,17026,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17054,17065,12,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerOwnedWindow +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17301,17306,6,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17329,17343,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17351,17353,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17850,17907,58,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,DeviceLost SessionLatch Transport == +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17910,17912,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,DeviceLost +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,17932,17936,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,18006,18009,4,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerSetContextLive Transport != +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,18063,18065,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp,18107,18982,876,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,DeviceLost SharedImage +MobileGL/MG_Backend/DirectGLES/DirectGLES.h,33,41,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.h,160,176,17,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,DeviceLost +MobileGL/MG_Backend/DirectGLES/DirectGLES.h,258,264,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.h,435,440,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/DirectGLES.h,520,572,53,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/Managers.cpp,21,37,17,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 ServerLoop +MobileGL/MG_Backend/DirectGLES/Managers.cpp,195,199,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,202,206,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,231,283,53,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread ServerLoop Transport != +MobileGL/MG_Backend/DirectGLES/Managers.cpp,354,464,111,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,EndedServerSession +MobileGL/MG_Backend/DirectGLES/Managers.cpp,1257,1376,120,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 Transport != Transport:: externalAhb +MobileGL/MG_Backend/DirectGLES/Managers.cpp,1381,1397,17,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,1406,1408,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,1983,1985,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2001,2004,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2008,2013,6,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,externalAhb +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2108,2120,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2151,2155,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2174,2180,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2215,2229,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2231,2290,60,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,externalAhb +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2313,2315,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2376,2378,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2409,2416,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2436,2444,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2513,2521,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,2680,3046,367,0,N,if MOBILEGL_BUILD_DISAGGREGATED && defined(__ANDROID__),False,AdoptT0 T0 Transport:: externalAhb +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3048,3106,59,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3126,3228,103,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3240,3249,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3267,3278,12,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3281,3334,54,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread MG_Config::Ipc OnApplyThread ServerLoop Transport != +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3465,3476,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3480,3491,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3508,3674,167,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,externalAhb +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3686,3702,17,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3789,3791,3,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3812,3822,11,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3857,3882,26,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,3923,3927,5,0,N,if MOBILEGL_PIPE_VERIFY && !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,4006,4018,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,4035,4079,45,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,T0 externalAhb +MobileGL/MG_Backend/DirectGLES/Managers.cpp,4123,4128,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,4155,4165,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,4208,4214,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,4229,4236,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,4936,4968,33,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,5006,5017,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,5021,5039,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,5090,5101,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,5135,5144,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,5171,5181,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,5200,5210,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,5481,5485,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,6360,6368,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,6547,6701,155,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,6942,6946,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,7041,7044,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,7110,7116,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,7154,7156,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,7165,7169,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,7853,7858,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,8011,8096,86,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,8120,8172,53,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,8174,8220,47,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,8274,8433,160,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/Managers.cpp,8474,8507,34,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/Managers.cpp,8555,8562,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,8630,8671,42,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,9255,9268,14,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,9461,9467,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,9504,9511,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,10044,10046,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,10058,10062,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,10620,10632,13,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/Managers.cpp,10679,10688,10,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,10690,10729,40,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,10892,10896,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,10949,10953,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,11287,11294,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,11376,11380,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,11428,11433,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,11442,11448,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,11615,11619,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,11793,11797,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,12075,12079,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,12096,12100,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,12245,12249,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,13101,13112,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,15233,15240,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,15585,15590,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,15841,15846,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.cpp,16163,16166,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,339,343,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/Managers.h,402,406,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/Managers.h,426,428,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/Managers.h,432,434,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/Managers.h,479,487,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.h,491,499,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.h,941,986,46,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/Managers.h,1074,1093,20,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,externalAhb +MobileGL/MG_Backend/DirectGLES/Managers.h,1153,1202,50,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,1327,1332,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Managers.h,1369,1372,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,1831,1834,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,1969,1984,16,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,2008,2019,12,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/Managers.h,2053,2058,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,2148,2155,8,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/Managers.h,2368,2378,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,2383,2388,6,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectGLES/Managers.h,2425,2432,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,3125,3129,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Managers.h,3673,3705,33,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,EndedServerSession +MobileGL/MG_Backend/DirectGLES/MultiDraw.cpp,128,178,51,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Backend/DirectGLES/MultiDraw.cpp,182,222,41,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/MultiDraw.cpp,296,306,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/SlotTables.h,21,23,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/SlotTables.h,535,540,6,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/SlotTables.h,606,618,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/SlotTables.h,640,654,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/SlotTables.h,675,677,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/SlotTables.h,687,689,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/SlotTables.h,751,755,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/SlotTables.h,779,784,6,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Backend/DirectGLES/Utils.cpp,13,15,3,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop +MobileGL/MG_Backend/DirectGLES/Utils.cpp,40,47,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Utils.cpp,49,71,23,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop Transport != +MobileGL/MG_Backend/DirectGLES/Utils.cpp,111,120,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Utils.cpp,126,130,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Utils.cpp,174,178,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Utils.cpp,272,280,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Utils.cpp,318,326,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectGLES/Utils.cpp,2365,2368,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/Utils.h,16,27,12,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectGLES/WireTextureReadback.inc,284,463,180,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp,333,364,32,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,Transport != +MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp,426,430,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp,434,443,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp,579,591,13,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,SharedImage +MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp,595,600,6,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,SharedImage +MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp,605,610,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,20,29,10,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,41,50,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,71,129,59,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread ServerLoop Transport == +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,141,187,47,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,204,211,8,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,226,377,152,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,379,459,81,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,498,594,97,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,649,654,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,660,665,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,717,722,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,729,734,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,807,812,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,872,877,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,946,955,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1017,1035,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1039,1051,13,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop Transport != +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1061,1100,40,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1143,1166,24,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1321,1329,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1515,1529,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1577,1581,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1678,1680,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport == +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1729,1731,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport == +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1811,1815,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp,1818,1840,23,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread ServerLoop Transport != TransportMode::InProcess +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.h,48,58,11,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/DirectVulkan.h,176,181,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/BufferArena.cpp,10,12,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/BufferArena.cpp,131,138,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/FrameContext.cpp,10,12,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/FrameContext.cpp,227,233,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/FrameContext.cpp,246,251,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/MagmaProgramSource.h,6,15,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/MagmaProgramSource.h,18,223,206,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/PipelineFactory.cpp,201,208,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/PipelineFactory.cpp,289,294,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/PipelineFactory.h,38,42,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/ProgramFactory.cpp,3202,3206,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/ProgramFactory.cpp,3498,3504,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,31,37,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,46,326,281,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,593,603,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,659,663,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,686,691,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,715,720,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,769,802,34,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,910,912,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1195,1197,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1308,1410,103,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1416,1419,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1544,1547,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1715,1719,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1724,1726,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1756,1761,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1762,1838,77,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,1917,1919,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2372,2374,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2421,2423,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2467,2469,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2552,2554,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2630,2725,96,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2755,2758,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2779,2782,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,2785,2788,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,3062,3064,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,3153,3207,55,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,3247,3252,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,3549,3558,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.cpp,3614,3616,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.h,59,77,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.h,126,132,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.h,218,276,59,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.h,286,291,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.h,369,382,14,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.h,418,421,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/UniformManager.h,566,568,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp,13,16,4,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp,211,220,10,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop Transport != +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp,396,534,139,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp,611,619,9,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop Transport != +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp,804,814,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.h,13,15,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.h,125,131,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.h,178,182,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,19,21,3,1,B,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,22,24,3,1,N,if MOBILEGL_BUILD_DISAGGREGATED && defined(__ANDROID__),False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,15,28,14,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,32,77,46,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,184,240,57,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,243,1211,969,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 MG_Config::Ipc T0 Transport:: +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,1230,1232,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,1239,1248,10,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport == +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,1258,1267,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,1296,1302,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,1402,1404,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,1560,1613,54,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,1990,1995,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp,2091,2094,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.h,16,19,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.h,106,161,56,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.h,235,241,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.h,257,377,121,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.h,390,392,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.h,411,430,20,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,11,13,3,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,16,39,24,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,externalAhb +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,47,49,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,70,72,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,127,144,18,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,AdoptT0 Transport:: externalAhb +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,173,176,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,203,212,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.cpp,237,246,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.h,68,70,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.h,74,85,12,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferObject.h,93,99,7,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,externalAhb +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,18,48,31,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,224,229,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,236,241,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,252,257,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,278,283,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,342,347,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,393,400,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,412,416,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,476,488,13,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,545,552,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.cpp,560,562,3,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.h,49,54,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.h,95,103,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.h,109,115,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkSamplerManager.h,120,125,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,21,34,14,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,320,322,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,381,392,12,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,724,729,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,1847,1865,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,1869,3266,1398,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,3823,3825,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp,3997,4005,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,22,26,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,31,35,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,358,384,27,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,418,431,14,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,469,485,17,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,513,515,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,542,546,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,607,682,76,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.h,859,882,24,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,45,61,17,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,71,73,3,0,N,if MOBILEGL_BUILD_DISAGGREGATED && !defined(_WIN32),False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,707,723,17,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop Transport != +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,1485,1574,90,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,1688,1738,51,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,3222,3232,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,3273,3275,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,3448,3450,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,3501,3503,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,3507,3524,18,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,3619,3621,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,4598,4680,83,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,4710,4784,75,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,4837,4896,60,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,4906,5254,349,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5359,5373,15,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5383,5392,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5410,5412,3,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5415,5417,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5445,5447,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5634,5642,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5739,5741,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5868,5876,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5877,5881,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5882,5892,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5894,5896,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,5947,5955,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,6051,6056,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,6162,6177,16,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,6185,6187,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,6553,6558,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,6899,6901,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,6986,6995,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,7621,7628,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,7686,7694,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,7797,7805,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,7965,7977,13,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,8369,8376,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,9293,9450,158,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,9508,9513,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10150,10155,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10469,10472,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10483,10490,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10518,10520,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10531,10550,20,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10585,10604,20,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10629,10646,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10749,10776,28,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10789,10791,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,10922,10927,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,11024,11043,20,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,11069,11074,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,11767,11769,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,11771,11773,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,12049,12054,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,12154,12165,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,12454,12457,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13577,13581,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13583,13616,34,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13631,13635,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13649,13654,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13657,13691,35,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13726,13744,19,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13748,13775,28,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13779,13787,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13797,13840,44,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13844,13847,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13851,13853,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13867,13878,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,13911,13929,19,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14000,14002,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14029,14040,12,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14051,14053,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14066,14071,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14114,14122,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14140,14144,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SessionLatch +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14156,14196,41,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,DeviceLost SessionLatch +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14273,14299,27,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14415,14421,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14440,14442,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14456,14466,11,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14504,14511,8,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14542,14553,12,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14555,14557,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14561,14564,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14595,14597,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14647,14658,12,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14683,14685,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,14692,14696,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,15343,15348,6,0,N,if MOBILEGL_BUILD_DISAGGREGATED && !defined(VK_USE_PLATFORM_WIN32_KHR),False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,15358,15458,101,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,15882,15899,18,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,15951,15984,34,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,16031,16052,22,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,16064,16073,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,16194,16197,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,16200,16280,81,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,16825,16831,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,17097,17101,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp,17150,17161,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,25,29,5,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,151,216,66,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,289,293,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,403,415,13,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,574,582,9,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,586,593,8,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,632,916,285,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,963,967,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,1151,1156,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,1224,1226,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,1374,1376,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.h,2149,2154,6,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireColorBlit.inc,3,408,406,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireColorBlitFilter.h,38,66,29,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireDeclineTally.h,12,172,161,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireDepthMipmap.inc,18,329,312,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireDepthResolveProbe.cpp,24,996,973,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireDepthResolveProbe.h,30,121,92,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireDraw.inc,2,912,911,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/WireFramebuffer.inc,3,1733,1731,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/WireMultisampleResolve.inc,18,167,150,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WirePlaceholderImages.inc,3,248,246,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WirePlaceholderKey.h,15,62,48,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireRenderPassCompatibility.h,5,49,45,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireSharedImage.inc,32,718,687,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/DirectVulkan/Renderer/WireTextureReadback.inc,3,214,212,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/DirectVulkan/Renderer/WireYuvImage.inc,15,515,501,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Backend/Init.cpp,14,21,8,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession ServerLoop ServerSession +MobileGL/MG_Backend/Init.cpp,23,32,10,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/Init.cpp,70,366,297,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession ServerLoop ServerRole ServerSession SplitRoles Transport != Transport == TransportMode::Spawn +MobileGL/MG_Backend/Init.cpp,368,376,9,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,SplitRoles Transport == +MobileGL/MG_Backend/Init.cpp,378,402,25,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession ServerLoop SplitRoles Transport == +MobileGL/MG_Backend/Init.cpp,404,415,12,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerRole +MobileGL/MG_Backend/Init.cpp,420,435,16,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Backend/MGPipe/PipeInputs.cpp,19,22,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.cpp,356,392,37,1,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread MGPipeServerArm MGPipeSessionLive RoleSplit Transport == TransportMode::Spawn +MobileGL/MG_Backend/MGPipe/PipeInputs.cpp,410,433,24,1,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerOwnedWindow +MobileGL/MG_Backend/MGPipe/PipeInputs.cpp,50,597,548,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread ClientBlock MGPipeServerArm MGPipeSessionLive MG_Config::Ipc RoleSplit ServerOwnedWindow ServerSetContextLiv +MobileGL/MG_Backend/MGPipe/PipeInputs.h,16,23,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,30,34,5,0,N,if (MOBILEGL_LOG_ACTIVE_LEVEL <= MOBILEGL_LOG_LEVEL_DEBUG || MOBILEGL_BUILD_DISAGGREGATED || MOBILEGL_PIPE_VERIFY),True, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,56,90,35,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,96,120,25,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,269,288,20,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,494,496,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,512,515,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,521,526,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,760,762,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/MGPipe/PipeInputs.h,931,966,36,1,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ApplyThread MGPipeServerArm MGPipeSessionLive +MobileGL/MG_Backend/MGPipe/PipeInputs.h,889,1009,121,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ApplyThread ClientBlock MGPipeServerArm MGPipeSessionLive RoleSplit ServerOwnedWindow ServerSetContextLive +MobileGL/MG_Backend/MGPipe/PipeInputs.h,1019,1094,76,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Backend/ServerRole.h,29,45,17,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerRole +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,17,35,19,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,94,135,42,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession RunsAsTheServerRole Transport == +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,142,244,103,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True,ClientSession RunsAsTheServerRole SessionLatch Transport != TransportMode::InProcess +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,451,553,103,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession SessionLatch +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,557,572,16,0,B,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,582,584,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,604,613,10,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerOwnedWindow +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,620,640,21,0,N,if MOBILEGL_BUILD_DISAGGREGATED && defined(__ANDROID__),False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,648,656,9,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerOwnedWindow +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,685,688,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,697,710,14,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,735,745,11,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,792,828,37,0,B,if MOBILEGL_BUILD_DISAGGREGATED,True,ClientSession RunsAsTheServerRole Transport != +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,833,835,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,836,895,60,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession RunsAsTheServerRole SessionLatch Transport != +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,904,909,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,965,973,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,978,991,14,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1015,1021,7,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1055,1057,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1066,1096,31,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1165,1169,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1242,1244,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1293,1295,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1372,1374,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1536,1567,32,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1606,1612,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1670,1674,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerOwnedWindow +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1679,1682,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1753,1757,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1781,1785,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1865,1867,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1879,1886,8,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerOwnedWindow +MobileGL/MG_Impl/EGLImpl/EGLImpl.cpp,1906,1914,9,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerOwnedWindow +MobileGL/MG_Impl/EGLImpl/EGLImpl.h,96,157,62,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/GLImpl/Drawing/GL_Drawing.cpp,15,17,3,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Drawing/GL_Drawing.cpp,1335,1348,14,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Drawing/GL_Drawing.cpp,1389,1394,6,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Exporting/Definitions.cpp,125,129,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Impl/GLImpl/Exporting/Definitions.cpp,134,137,4,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SharedImage +MobileGL/MG_Impl/GLImpl/Framebuffer/GL_Framebuffer.cpp,19,21,3,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp,25,27,3,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp,690,706,17,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp,1328,1333,6,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport == +MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp,1335,1337,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp,3006,3017,12,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession DeviceLost +MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp,3026,3068,43,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession DeviceLost +MobileGL/MG_Impl/GLImpl/Query/GL_Query.cpp,781,789,9,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp,52,56,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp,6124,6127,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp,6589,6596,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp,6617,6622,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp,6883,6888,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/OwnedDrawInputs.h,12,210,199,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,44,60,17,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror ClientSession +MobileGL/MG_Impl/Pipe/PipeFill.cpp,96,108,13,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,355,494,140,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession RunsAsTheServerRole Transport == +MobileGL/MG_Impl/Pipe/PipeFill.cpp,687,704,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,753,774,22,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Impl/Pipe/PipeFill.cpp,880,884,5,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,889,897,9,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,913,919,7,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,Transport == +MobileGL/MG_Impl/Pipe/PipeFill.cpp,999,1065,67,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession DeviceLost RunsAsTheServerRole Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1079,1086,8,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1099,1107,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1133,1141,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1171,1194,24,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,RunsAsTheServerRole Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1268,1387,120,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession MG_Config::Ipc OnApplyThread RunsAsTheServerRole Transport == +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1390,1395,6,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1506,1520,15,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1649,1654,6,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,1878,1884,7,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession DeviceLost +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2026,2030,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2053,2057,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2098,2102,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2114,2118,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2145,2149,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2164,2168,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2208,2211,4,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2226,2230,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2233,2244,12,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2263,2267,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2276,2285,10,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2296,2313,18,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2341,2356,16,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2362,2364,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2910,2912,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2939,2942,4,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,2984,2987,4,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3118,3120,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3137,3194,58,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3396,3411,16,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3433,3464,32,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True,ClientSession +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3472,3492,21,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3549,3566,18,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True,Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3593,3619,27,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,RunsAsTheServerRole Transport != +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3621,3623,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3735,3746,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3785,3798,14,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3836,3848,13,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,RunsAsTheServerRole Transport == +MobileGL/MG_Impl/Pipe/PipeFill.cpp,3851,3877,27,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/ResourceTracker.h,51,57,7,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Impl/Pipe/ResourceTracker.h,589,598,10,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Impl/Pipe/ResourceTracker.h,601,640,40,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True,ClientSession Transport:: +MobileGL/MG_Impl/Pipe/ResourceTracker.h,708,714,7,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Impl/Pipe/SamplerEmit.h,40,42,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/SamplerEmit.h,223,226,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/SlotAllocator.cpp,12,20,9,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop +MobileGL/MG_Impl/Pipe/SlotAllocator.cpp,23,71,49,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread MGPipeServerArm OnApplyThread ServerLoop Transport == +MobileGL/MG_Impl/Pipe/SlotAllocator.cpp,229,231,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Impl/Pipe/SlotAllocator.cpp,242,244,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Impl/Pipe/SlotAllocator.cpp,251,253,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Impl/Pipe/SlotAllocator.cpp,338,343,6,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Impl/Pipe/SlotAllocator.h,167,214,48,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Impl/Pipe/TextureEmit.h,69,74,6,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/TextureEmit.h,567,571,5,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Impl/Pipe/TextureEmit.h,902,913,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/VertexInputEmit.h,385,390,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Impl/Pipe/VertexInputEmit.h,394,397,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PersistentMapPeek.cpp,33,42,10,0,N,if defined(MGITEST_PERSISTENT_MAP_PEEK_LIVE) && MOBILEGL_BUILD_DISAGGREGATED,True,Transport != TransportMode::Spawn +MobileGL/MG_IntegrationTest/Harness/PipeApplyPeek.cpp,19,24,6,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession ServerLoop +MobileGL/MG_IntegrationTest/Harness/PipeApplyPeek.cpp,93,137,45,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession OnApplyThread ServerLoop Transport:: +MobileGL/MG_IntegrationTest/Harness/PipeApplyPeek.cpp,141,144,4,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread Transport != +MobileGL/MG_IntegrationTest/Harness/PipeApplyPeek.cpp,160,163,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread Transport != +MobileGL/MG_IntegrationTest/Harness/PipeApplyPeek.cpp,222,225,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread Transport != +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,39,41,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,62,73,12,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,85,89,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,128,130,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,141,143,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,158,160,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,212,214,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,219,221,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,238,240,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/PipeStatsWindow.h,245,247,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Harness/WireDeclinePeek.cpp,13,17,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Scenarios/PoisonOmissionScenario.cpp,171,181,11,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_IntegrationTest/Scenarios/PoisonOmissionScenario.cpp,211,213,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_IntegrationTest/Scenarios/PoisonOmissionScenario.cpp,448,466,19,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/MGPipeCallbacks.h,79,116,38,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/MGPipeTypes.h,466,475,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Pipe/MGPipeTypes.h,478,484,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,19,23,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,35,53,19,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession ServerLoop ServerSession +MobileGL/MG_Pipe/PipeApply.cpp,122,268,147,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SessionLatch +MobileGL/MG_Pipe/PipeApply.cpp,1247,1268,22,0,N,if MOBILEGL_PIPE_VERIFY && !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Pipe/PipeApply.cpp,1396,1405,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,1432,1500,69,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,1550,1564,15,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,1733,1739,7,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerSession Transport != +MobileGL/MG_Pipe/PipeApply.cpp,1763,1793,31,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession MGPipeServerArm MGPipeSessionLive OnApplyThread ServerLoop Transport != +MobileGL/MG_Pipe/PipeApply.cpp,1889,1894,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,1914,1919,6,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,1953,1956,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,1997,2006,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Pipe/PipeApply.cpp,2119,2121,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,2256,2266,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,2357,2375,19,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,2397,2404,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,2465,2482,18,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,2684,2695,12,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.cpp,2719,2737,19,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Pipe/PipeApply.cpp,2778,2800,23,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,T0 +MobileGL/MG_Pipe/PipeApply.cpp,3962,3967,6,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_Pipe/PipeApply.h,111,146,36,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.h,876,935,60,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.h,1312,1318,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeApply.h,1327,1335,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Pipe/PipeApply.h,1486,1493,8,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeMutation.h,216,284,69,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,OnApplyThread +MobileGL/MG_Pipe/PipeRoute.cpp,313,327,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeRoute.h,297,305,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Pipe/PipeRoute.h,375,380,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeRoute.h,399,402,4,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Pipe/PipeSessionFail.h,57,63,7,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,DeviceLost +MobileGL/MG_Pipe/PipeSessionFail.h,88,136,49,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,SessionLatch +MobileGL/MG_State/EGLState/Core.cpp,316,323,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/EGLState/Core.cpp,326,330,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/EGLState/Core.cpp,403,407,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/EGLState/Core.cpp,1344,1389,46,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerOwnedWindow +MobileGL/MG_State/EGLState/Core.cpp,1588,1590,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/EGLState/Core.h,138,153,16,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerOwnedWindow +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,15,25,11,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,33,67,35,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread ServerRole +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,95,101,7,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,213,218,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,290,297,8,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,362,367,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,404,429,26,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread ServerRole +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,443,530,88,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerRole +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,539,554,16,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,564,633,70,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,822,827,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,868,871,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport != +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,907,915,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,929,934,6,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,936,944,9,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,950,954,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport == +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,986,988,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,992,1000,9,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,1019,1021,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,1026,1030,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/BufferState/BufferObject.cpp,1043,1045,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/BufferState/BufferObject.h,190,241,52,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/BufferObject.h,324,329,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/PipeResource.h,56,60,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/PipeResource.h,76,82,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/GLState/BufferState/PipeResource.h,144,158,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/PipeResource.h,165,175,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/PipeResource.h,185,188,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/BufferState/PipeResource.h,212,215,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.cpp,33,35,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.cpp,38,51,14,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.cpp,1292,1296,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.cpp,1370,1374,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.cpp,1559,1564,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.cpp,1658,1660,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.h,33,41,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.h,102,123,22,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.h,574,576,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.h,608,612,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.h,741,746,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.h,757,765,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/Core.h,778,785,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/FramebufferState/FramebufferState.cpp,90,99,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/FramebufferState/FramebufferState.h,31,39,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifacts.h,93,132,40,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifacts.h,211,216,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifacts.h,529,539,11,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifacts.h,550,554,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifacts.h,637,643,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.cpp,88,154,67,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.cpp,203,216,14,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.cpp,369,382,14,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.cpp,392,398,7,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.cpp,401,415,15,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.cpp,420,424,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.cpp,449,453,5,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/GLState/ProgramState/ProgramArtifactsCodec.h,63,77,15,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_State/GLState/ProgramState/ProgramLinkTask.cpp,109,130,22,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramLinkTask.cpp,1761,1767,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramLinkTask.cpp,1771,1850,80,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramLinkTask.h,210,217,8,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/ProgramState/ProgramObject.h,51,54,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,14,20,7,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerLoop +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,26,94,69,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread OnApplyThread ServerLoop Transport == +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,242,244,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,249,251,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,323,325,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,331,333,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,339,341,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,352,354,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,360,362,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,377,379,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,394,396,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,404,406,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,413,415,3,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,421,423,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,448,450,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,456,458,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,553,555,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,561,563,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_State/GLState/TextureState/MipmapStorage.cpp,598,600,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ApplyThread +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,6,17,12,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientSession +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,23,60,38,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,TransportMode::InProcess +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,64,82,19,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,89,102,14,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,126,156,31,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,TransportMode::InProcess +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,160,197,38,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,201,219,19,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerSetContextLive +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,223,251,29,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True,ApplyThread ClientSession MG_Config::Ipc RoleSplit +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,259,286,28,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,289,306,18,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,310,319,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Backend/DirectGLES/ContextEpochTest.cpp,323,332,10,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Buffer/SplitBufferTest.cpp,28,32,5,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Buffer/SplitBufferTest.cpp,38,108,71,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,MG_Config::Ipc Transport:: TransportMode::InProcess +MobileGL/MG_Test/Buffer/SplitBufferTest.cpp,122,802,681,0,C,if MOBILEGL_BUILD_DISAGGREGATED,True,MG_Config::Ipc T0 Transport == TransportMode::InProcess +MobileGL/MG_Test/Pipe/FieldOwnershipTest.cpp,91,99,9,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,MG_Config::Ipc +MobileGL/MG_Test/Pipe/FieldOwnershipTest.cpp,102,106,5,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,MG_Config::Ipc +MobileGL/MG_Test/Pipe/FieldOwnershipTest.cpp,457,1064,608,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,ClientBlock MG_Config::Ipc RoleSplit TransportMode::InProcess TransportMode::Spawn +MobileGL/MG_Test/Pipe/MagmaPipeIdentityTest.cpp,45,47,3,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Pipe/MagmaPipeIdentityTest.cpp,231,268,38,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipe/MagmaPipeIdentityTest.cpp,272,297,26,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipe/MagmaPipeIdentityTest.cpp,301,322,22,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipe/ResourceEmitTest.cpp,71,78,8,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror +MobileGL/MG_Test/Pipe/ResourceEmitTest.cpp,2132,2205,74,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipe/ResourceEmitTest.cpp,2229,2288,60,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipe/TextureEmitTest.cpp,77,83,7,0,C,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Pipe/TextureEmitTest.cpp,635,828,194,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,14,19,6,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,469,492,24,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,496,519,24,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,529,589,61,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,592,616,25,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,620,629,10,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,635,665,31,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,669,680,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,687,727,41,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,739,835,97,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,846,897,52,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,911,922,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,925,956,32,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Pipeline/PipelineQuirkTest.cpp,960,998,39,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Program/ProgramArtifactsCodecTest.cpp,532,540,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Program/ProgramArtifactsCodecTest.cpp,548,585,38,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Program/ProgramArtifactsTest.cpp,84,92,9,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Program/ProgramTest.cpp,384,553,170,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/SanityTest.cpp,44,52,9,0,B,if MOBILEGL_BUILD_DISAGGREGATED,False,CapsMirror +MobileGL/MG_Test/SanityTest.cpp,2139,2144,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,2153,2156,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/SanityTest.cpp,3474,3485,12,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/SanityTest.cpp,3536,3542,7,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,4278,4292,15,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,4586,4698,113,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,4722,4785,64,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,4807,4822,16,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,4838,4848,11,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,4944,5029,86,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,5042,5088,47,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/SanityTest.cpp,5103,5204,102,0,D,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerSession TransportMode::Spawn +MobileGL/MG_Test/ScopedMonolithFrontendArm.h,27,33,7,0,D,if MOBILEGL_BUILD_DISAGGREGATED,False,Transport == +MobileGL/MG_Test/ScopedMonolithFrontendArm.h,36,38,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/SelfTest/DriverBugProbesTest.cpp,1181,1202,22,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/SelfTest/DriverBugProbesTest.cpp,1205,1224,20,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Util/ConfigFileTest.cpp,89,92,4,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Ipc. +MobileGL/MG_Test/Util/ConfigFileTest.cpp,112,116,5,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Ipc. TransportMode::Spawn +MobileGL/MG_Test/Util/ConfigFileTest.cpp,126,128,3,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,Ipc. +MobileGL/MG_Test/Util/LogLevelTest.cpp,204,207,4,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Util/PipeStatsTest.cpp,170,206,37,0,N,if !MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Wire/SessionHandshakeTest.cpp,136,142,7,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Wire/SessionHandshakeTest.cpp,274,278,5,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Test/Wire/StagedTextureStoreTest.cpp,461,513,53,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Test/Wire/StagedTextureStoreTest.cpp,760,787,28,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/Debug/Log.cpp,18,190,173,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerRole +MobileGL/MG_Util/Debug/Log.cpp,251,276,26,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerRole +MobileGL/MG_Util/Debug/Log.cpp,282,298,17,0,E,if MOBILEGL_BUILD_DISAGGREGATED,True,ServerRole +MobileGL/MG_Util/Debug/Log.cpp,303,308,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Util/Debug/Log.cpp,346,363,18,0,E,if MOBILEGL_BUILD_DISAGGREGATED,False,ServerRole +MobileGL/MG_Util/Debug/Log.cpp,366,380,15,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/Debug/Log.cpp,385,390,6,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/Debug/Log.h,138,293,156,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Util/Metrics/PipeStats.cpp,307,353,47,0,F,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Util/Metrics/PipeStats.cpp,378,398,21,0,A,if MOBILEGL_BUILD_DISAGGREGATED,True, +MobileGL/MG_Util/Metrics/PipeStats.cpp,800,812,13,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/Metrics/PipeStats.h,502,516,15,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/SelfTest/DriverBugProbes.cpp,14,16,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/SelfTest/DriverBugProbes.cpp,2482,2549,68,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/SelfTest/DriverBugProbes.h,12,14,3,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/SelfTest/DriverBugProbes.h,350,379,30,0,A,if MOBILEGL_BUILD_DISAGGREGATED,False, +MobileGL/MG_Util/SelfTest/DriverPost.cpp,3031,3043,13,0,F,if MOBILEGL_BUILD_DISAGGREGATED,False, diff --git a/docs/Disaggregated/notes/p13/tools/w5_classify.py b/docs/Disaggregated/notes/p13/tools/w5_classify.py new file mode 100644 index 00000000..5d557f63 --- /dev/null +++ b/docs/Disaggregated/notes/p13/tools/w5_classify.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python3 +"""P13 W5 inventory: every preprocessor group whose condition names MOBILEGL_BUILD_DISAGGREGATED, +classified by what its DISAGG-taken branch talks about. + + w5_classify.py [--root DIR] [--csv OUT] [--summary] + +Classes (W5 design §3.1): + A record terms, no transport token, no MG_Remote name -> becomes MOBILEGL_BUILD_RECORD_ARM + B names MG_Remote, no record term -> stays DISAGG + C names MG_Remote and record terms -> hand split + D transport token and record terms, no MG_Remote name -> hand split + E transport token, no record term, no MG_Remote name -> stays DISAGG + F none of the three -> reviewed, biased to record + N negated (`#if !MOBILEGL_BUILD_DISAGGREGATED`) or compound condition -> listed for the hand pass + +Comments are stripped before matching. Nested DISAGG groups are listed with their depth; a rewrite +touches the outermost of a run and leaves inner transport groups as they are. +""" +import argparse +import csv +import pathlib +import re +import sys + +SCAN = ['MobileGL'] +SKIP_PARTS = {'MG_Remote', 'generated', '3rdparty'} +EXTS = {'.h', '.hpp', '.cpp', '.cc', '.inc', '.def'} +MACRO = 'MOBILEGL_BUILD_DISAGGREGATED' + +DIRECTIVE = re.compile(r'^\s*#\s*(if|ifdef|ifndef|elif|else|endif)\b(.*)$') + +TRANSPORT = [r'ClientSession', r'ServerSession', r'ServerLoop', r'Transport::', r'MG_Config::Ipc\b', r'Ipc\.', + r'SharedImage', r'AdoptT0', r'\bT0\b', r'externalAhb', r'RunsAsTheServerRole', r'CapsMirror', + r'SessionLatch', r'ServerRole', r'SplitRoles', r'TransportMode::Spawn', r'TransportMode::InProcess', + r'ServerOwnedWindow', r'ServerSetContextLive', r'DeviceLost', r'RoleSplit', r'ApplyThread', + r'MGPipeServerArm', r'MGPipeSessionLive', r'ClientBlock', r'EndedServerSession', r'OnApplyThread', + r'Transport\s*!=', r'Transport\s*=='] +RECORD = [r'DataArmIsRecord', r'RecordArm', r'Staged', r'\bWire', r'MGPipe', r'Handle', r'Record\b', r'Twin', + r'Respecif', r'Readback', r'Verb', r'PersistentMap', r'GpuWrite', r'Emit', r'Applier', r'Slot', + r'Residual', r'ContextValues', r'Cso\b', r'CSO', r'Placeholder', r'Mipmap', r'Shadow'] +TRANSPORT_RE = re.compile('|'.join(TRANSPORT)) +RECORD_RE = re.compile('|'.join(RECORD)) +REMOTE_RE = re.compile(r'MG_Remote') + + +def strip_comments(text): + text = re.sub(r'/\*.*?\*/', ' ', text, flags=re.S) + return re.sub(r'//[^\n]*', '', text) + + +def groups(lines): + """Yield dicts for each #if group naming MACRO: open/else/close lines, condition, depth, body.""" + stack = [] # entries: {'open', 'cond', 'kind', 'names', 'branches': [(line, kind)], 'depth'} + out = [] + for no, raw in enumerate(lines, 1): + m = DIRECTIVE.match(raw) + if not m: + continue + kind, rest = m.group(1), strip_comments(m.group(2)).strip() + if kind in ('if', 'ifdef', 'ifndef'): + names = MACRO in rest + depth = sum(1 for s in stack if s['names']) + stack.append({'open': no, 'cond': (kind + ' ' + rest).strip(), 'names': names, + 'branches': [(no, kind)], 'depth': depth}) + elif kind in ('elif', 'else'): + if stack: + stack[-1]['branches'].append((no, kind)) + elif kind == 'endif': + if not stack: + continue + g = stack.pop() + g['close'] = no + if g['names']: + out.append(g) + return out + + +def classify(path, lines): + rows = [] + for g in groups(lines): + cond = g['cond'] + plain = re.fullmatch(r'(if\s+' + MACRO + r'|ifdef\s+' + MACRO + r'|if\s+defined\s*\(?\s*' + MACRO + + r'\s*\)?)', cond) is not None + # The DISAGG-taken branch: first branch for a plain condition. + first_end = g['branches'][1][0] if len(g['branches']) > 1 else g['close'] + body = strip_comments(''.join(lines[g['open']:first_end - 1])) + remote = bool(REMOTE_RE.search(body)) + transport = sorted(set(t.group(0) for t in TRANSPORT_RE.finditer(body))) + record = bool(RECORD_RE.search(body)) + if not plain: + cls = 'N' + elif remote and record: + cls = 'C' + elif remote: + cls = 'B' + elif transport and record: + cls = 'D' + elif transport: + cls = 'E' + elif record: + cls = 'A' + else: + cls = 'F' + rows.append({'file': path, 'open': g['open'], 'close': g['close'], 'lines': g['close'] - g['open'] + 1, + 'depth': g['depth'], 'class': cls, 'cond': cond, 'has_else': len(g['branches']) > 1, + 'transport': ' '.join(transport)[:120]}) + return rows + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('--root', default='.') + ap.add_argument('--csv') + ap.add_argument('--summary', action='store_true') + args = ap.parse_args() + root = pathlib.Path(args.root) + rows = [] + for top in SCAN: + for p in sorted((root / top).rglob('*')): + if p.suffix not in EXTS or not p.is_file(): + continue + rel = p.relative_to(root) + if SKIP_PARTS & set(rel.parts): + continue + lines = p.read_text(encoding='utf-8', errors='replace').splitlines(keepends=True) + rows.extend(classify(rel.as_posix(), lines)) + if args.csv: + with open(args.csv, 'w', newline='', encoding='utf-8') as f: + w = csv.DictWriter(f, fieldnames=list(rows[0].keys()) if rows else ['file']) + w.writeheader() + w.writerows(rows) + if args.summary or not args.csv: + by = {} + for r in rows: + top = r['file'].split('/')[1] if '/' in r['file'] else r['file'] + if top.startswith('MG_Backend') and len(r['file'].split('/')) > 2: + top = '/'.join(r['file'].split('/')[1:3]) + key = (top, r['class']) + n, l = by.get(key, (0, 0)) + by[key] = (n + 1, l + r['lines']) + classes = 'ABCDEFN' + print('%-28s' % 'dir' + ''.join('%14s' % c for c in classes)) + for top in sorted(set(k[0] for k in by)): + print('%-28s' % top + ''.join('%14s' % ('%d/%d' % by.get((top, c), (0, 0))) for c in classes)) + tot = {c: (sum(by[k][0] for k in by if k[1] == c), sum(by[k][1] for k in by if k[1] == c)) for c in classes} + print('%-28s' % 'TOTAL blocks/lines' + ''.join('%14s' % ('%d/%d' % tot[c]) for c in classes)) + return 0 + + +if __name__ == '__main__': + sys.exit(main())