mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-17 00:28:31 +09:00
[Feat, Docs] (PipeStats, MEASUREMENTS): wire persistent-map-push to the bytes the client ships, rewrite the inventory line that called it unwired, and correct the persistent-map census from 20 to 21
This commit is contained in:
@@ -65,9 +65,22 @@
|
||||
// payload, not resource bytes.
|
||||
// NOT covered: Magma builds no such array (it issues one vkCmdDraw*
|
||||
// per sub-draw), so this class is Espryt-only by construction.
|
||||
// persistent-map-push Not wired in P0: today a persistent map is a permanent address
|
||||
// space donation (D4/D-B4) that survives the whole monolith track,
|
||||
// so there is no push to count until the IPC track breaks it.
|
||||
// persistent-map-push WIRED IN P5 (b1), and only a split build can ever move it. The one
|
||||
// site is BufferObject::PushMappedSpanBlock, i.e. the client shipping
|
||||
// one MOBILEGL_IPC_PERSISTENT_BLOCK_KB block of a persistently mapped
|
||||
// span because MGPipeApplyMapPersistent declined the adoption (R-6,
|
||||
// tier T2). Zero in every monolith build, and that zero is CORRECT
|
||||
// rather than missing: a persistent map there is a permanent address
|
||||
// space donation (D4/D-B4), the application writes straight into GPU
|
||||
// memory, and there is no push to count. A split run where this stays
|
||||
// 0 has NOT reached T2.
|
||||
// Read it against map-persistent-roundtrips (mpr), which it is
|
||||
// ANTI-CORRELATED with: mpr counts acquisition ATTEMPTS - one per
|
||||
// storage definition, the same number in both modes - and this counts
|
||||
// the bytes the client had to ship because the attempt was declined.
|
||||
// NOT double-counted with stage-buffer: that class is what a BACKEND
|
||||
// stages out of a shadow it owns, and it explicitly excludes bytes an
|
||||
// app writes through a persistent map (see its entry above).
|
||||
// residual-value-block Placeholder, always 0 until P2 (plan section 6.3).
|
||||
//
|
||||
// Call classes
|
||||
|
||||
@@ -108,7 +108,7 @@ python3 tools/trace_replay/run_android_retrace_local.py \
|
||||
| `PipeInputs` 字段 | 63 | 计划写 61;`GetBoundTransformFeedbackLifetimeId`、`HasOpenTransformFeedbackSpan` 是 D21 之后新增的读点 |
|
||||
| 后端调用的不同访问器 | 62(Espryt 32、Magma 56) | `GetBoundTransformFeedbackName` 已无人读,留作已标注的死行 |
|
||||
| 填充点 | 83 条 `MGP_FILL`,覆盖 69 个 verb、9 个类 | `MG_Pipe/FillPoints.def` |
|
||||
| `SyncPersistentMappedRange` / `SyncGpuWrites` | 20 / 6 | 与计划一致 |
|
||||
| `SyncPersistentMappedRange` / `SyncGpuWrites` | **21** / 6 | P5 b1 复核:21 = Espryt 9 + Magma 12,不是 20。原来的 20 与 `Managers.cpp:5047-5048` 的"十一处 Espryt"都恰好少一行,少的是 `DirectGLES.cpp:361`(`ResolveIndirectCommandBytes`)——它是共享 helper 而不是 draw-path 站点,多半因此被排除,但一个能读到持久映射区间的 helper 与 draw 站点一样会读到陈旧字节。`ARCHITECTURE.md:290` 引的那张 §5.7 逐站点归属表**在树里不存在**。 |
|
||||
|
||||
## 7. verify 通道发现的两类真问题
|
||||
|
||||
|
||||
Reference in New Issue
Block a user