Renderer ARM198接线修复 · 2026-10-21

正式32/66、Renderer0/5。不可变快照,E2不替代E4验收。

---
type: devlog
title: GPU Renderer真实来源频率余量修复
date: 2026-10-21
status: implemented · partial
kind: plan
stage: P4
evidence: E4
metric: ios.foreground.gpu.renderer_utilization
---

# GPU Renderer来源频率余量

文档类型devlog。同一AI方案、实现、测试与分离核对,无子代理。承接[正式合同及失败记录](/devlog/p4-gpu-renderer-marked-five-round-plan-2026-10-21),基线baf0bc1e。正式32/66,Renderer0/5;a04首轮118/120失败,原件/尾段保留,不补拼。当前无正式driver。

## 决定与真实资格

默认Graphics约0.99Hz与每秒发表交叉;单纯startSamplingAtTimeInterval:(0.5)没有提高频率。原始项目示例给出独立selector提示,使用锁定pymobiledevice3 DTX内核的自研最小声明实测setSamplingRate:5.0,再startSamplingAtTimeInterval:0.0。20秒取得40事件/19.9794005秒跨度、1.952010522Hz,40原生不透明键严格递增,字段/范围核同,host到达gap0.504333208–0.516136334秒;无产品Start、App新负载/信号/安装。主机CPU0.074541秒/RSS72876032B/首响应9.073ms,全部通道关闭。默认0.0基线20事件/0.988320Hz/CPU0.052639秒/RSS71778304B。这是当前空闲来源资格,不替代负载期稳定性或手机成本。

参数5.0是当前实测的经验配置,不声称单位是Hz或秒;XR戳单位和驱动积分窗仍未证。原始示例仅作selector研究:[idb源码](https://github.com/dkw72n/idb/blob/master/instrument_service.py),不引入其运行内核或复制实现。自研适配层以pymobiledevice3原生DTXService/DTX method绑定系统selector,单通道、单次设置/Start/Stop。

## 最小实施与公式

只在显式请求Renderer且发表间隔1000ms时启用renderer-headroom2x.v1,其他捕获保持原路径。共用Graphics传输的GPU schema子类同样遵循显式配置。新小型stream使用现有GraphicsService解码/队列,增加setSamplingRate:声明,进入依次connect→set5.0→start0.0,退出stopSampling;不修改vendor文件、不增加常驻进程/第二来源。设置失败应暴露源失败,不静默回退并宣称2Hz。

原始payload补记cadence policy和实际请求参数,字段不覆盖系统原字段。实际频率继续由原始host到达统计,不由请求参数当作事实。renderer-gauge.v2恒等值/百分比单位/foreground-device scope不变;renderer-source-once.v1仍只发表尚未用过的最新真实来源,2秒TTL、epoch/身份/原生键严格新颖性、missing/null、合法0及0–100范围不变。每秒产品只发表一次,不平均、不插值、不复用来源、不造设备窗口。提高到达频率不等于获得独立精度参考。

## 匹配验证与资源预算

先软件验证显式作用域、实际调用顺序/次数、prepared transport复用、不请求Renderer与非1Hz保持旧路径、set失败不能继续Start、Stop关闭、原始标记、每源只发一次及延迟/缺值。原50k事件来源控制与全Core回归须通过;历史已验指标不重开真机。关键路径O(事件数),每事件O(1)元数据与已有latest槽,额外内存O(1);仅进入通道增加一次DTX调用≤8秒,source consumer无新增轮询或复制。

同真实50k事件旧/新各至少3组窄基准:CPU/wall比≤1.15、RSS增量≤8MiB;每事件延迟与最差耗时记录。native来源约两倍事件,故另外比较完整140秒旧a04与新产品诊断(同配方与App observer):CPU增加≤2百分点、footprint中位增量≤20MiB、各指令全部完成、原始吞吐/大小及执行器CPU/RSS/I/O/首响应如实记录,不把host成本当手机成本。预计原始新增≤256KiB/分钟,Session≤256MiB/执行器192MiB/360秒不变,真实超门则停止。

产品改动生成ARM197,Apple Development仅本机内部测试授权沿用,严格签名、独立挂载全树/SHA及标准路径单实例安装;公证暂缓/正式分发门仍partial。196私有回滚保留。先确认Mac已实际空闲且正常退出后覆盖,不修改运行App。Fixture仍Lab26,无手机升级。

## 真机与后续

先当前全部封口/真实生命/旧证据保全与容量,新197单次完整诊断及成本对比;无异常且有来源频率余量才文档化新独占五轮。活动60不是新准入,准备和正式均按实际收据,不复用旧数。五新名/五生命/五Session,119/120且gap≤2秒、全来源/原件/真实消费者仍全部核同,600秒双钟冷却/首失败停不变。所有a01–a04保留,不充正式轮。只有完整五轮满足后才按Owner规则标记正式通过33/66,不要求额外Owner复核。

GitLab每批一次、网站/Webhook欠项沿用partial,不额外询问;正式指标关闭后逐指标交付再Tiler。

## Implementation Update · 2026-10-21

原生空闲候选已完成并独立读40原件核字段/范围/新颖性与SHA。实施尚未开始,产品196/Lab26保持。后续实际代码、偏差与验证继续追加本页,不将资格写成正式通过。

### Implementation Update · 2026-10-21 · 最小来源配置已实现

新增graphics_cadence.py,以pymobiledevice3 GraphicsService为解码队列基座、自研DTX声明setSamplingRate:,单次set5→start0、退出Stop;adapters.py仅根据显式policy选择,raw记policy/参数;realtime.py预热/非预热两个编排入口仅Renderer显式1Hz启用,GPU schema共用该路径。产品值公式/TTL/新颖性/发表频率未改,无FIFO/填值/窗口移动。

25项Renderer软件控制通过E2,含6个新增cadence控制及原19来源控制。初次测试mock对只读service属性赋值造成2错误,已保留失败说明;仅修测试mock绑定现有底层字段,产品未为测试改语义。50k事件前后3组基准与全Core回归进行中,尚未打包/安装/正式采样。

### Software Validation Update · 2026-10-21

最终2796/2796 Core串行隔离回归通过E2,0失败/错误/skip,129.443894秒,最高分片RSS195067904B,手机调用0。50k事件旧/新三组中位wall比1.030592、峰值RSS差-4112384B,最大P95 33833ns;全部同校验和/无新块I/O。未宣称手机开销或指标通过。下一冻结源码并生成197内部候选;新实采仍须成本与覆盖门。

## E2 Packaging / Execution Decision Update · 2026-10-21

ARM197已构建45.911609秒、源码pins未变;ARM原生依赖/冻结代码与源码核同、严格签名、只读DMG全12931件树核同及实际标准路径安装完成E2,196回滚与dist原包保留、删除0。新DMG SHA256为8bf97d4d45218e3646d1acc5c3bb81ea338860d1c5c1bd7032218e456d7ab106。仅内部Apple Development,Gatekeeper3/未公证/非正式分发;当前未开始新真机正式轮。

为避免同配方再产生一个仅作准备的手机run,执行顺序增量调整:新的完整五轮在第1轮同时执行已预先固定的变更前后开销门与负载频率资格,全部通过才准该轮记为1/5并继续;任一失败则整attempt失败,不把资格轮移入其他attempt。原基线a04虽覆盖失败,其完整140秒/2704命令/133自观察与封口均有效,因此仅作为成本基线使用,不冒充验收通过。成本比较不能代表全系统CPU/其他App;分别报告App自观察及Mac执行器CPU/RSS/I/O。不会复用a04指标样本充新轮。

新独占formal-a05五新名、ARM197/Lab26,每轮仍固定140秒/119有效每120机会/gap≤2/600秒双钟冷却。增加并冻结每轮完整来源≥1.8Hz、最大host到达gap≤1秒、全部来源标记renderer-headroom2x.v1及参数5.0、原生键严格新颖;App CPU增量≤2百分点/footprint中位增量≤20MiB,Session执行/保全/真实消费者仍需全部通过。原始schema/时戳单位/积分窗不被参数请求证明。全部源与成本审核只读,不加手机采集或改变当前配方。

当前实际60;先选已独立通过a05 AGX准备完整六件保全核源/host SHA,再单项rename60→59;删除0,所有formal失败a01–a04原位保留。新fresh容量每轮重新核。宿主工具显式支持旧196/新197(197须cadence policy与成本基线完整pins),不回放旧attempt。首失败停/不补拼/全部原件保留。

### Internal Package / Tooling Update · 2026-10-21

197已完成同址安装、ARM/签名/完整树核对,196回滚与旧dist保留,新dist仅197包及SHA,删除0;GUI设备/自有App已选择且仅GPU组,尚未Start。专属工具显式197/cadence/成本合同,27工具控制及真实旧1Hz拒绝控制通过E2,真实旧140秒成本输入可读但不被当新2Hz资格。新工具不修改产品已冻结源码,产品正式E4未通过。网站/镜像/通知欠项按既有授权partial。

## Repair Decision · 2026-10-21 · ARM197编排参数接线遗漏

新a05第一轮原guard22730成功封口(178.440416秒、CPU1.646973秒、RSS103301120B),样本审核再次valid-coverage失败,正式0/5;未继续轮2。实时ready记录证实sampleIntervalSeconds=1、sourceIntervalMilliseconds=500;Graphics raw无rendererCadencePolicy,实测来源仍约1Hz。实现错误是两个编排入口把来源调度ms传给publication_options,错误当作发表ms,导致197只在单测直接给1000时启用,而真实GUI500来源条件不启用。不是系统selector失效或硬件故障。已有197构建/签名/E2结果保持,不冒充实际激活。

修复仅把两个调用明确传入publication interval_ms,并把helper改为具名publication_interval_ms参数,避免混淆。补充真实stream入口I/O替身测试:发表1000/来源500时传输policy须实际启用且wire仍1Hz;同时覆盖来源1000和预热真实source_options入口。旧直接helper测试不能替代该集成用例。公式/原生请求5.0/TTL/once和采样门不变。

新ARM198须重新完整软件/50k×3基准、打包/签名/源码与ARM依赖核同、独立挂载及标准路径安装;197保留回滚。后续另立新独占完整五轮,a05不补、不把旧GPU样本重命名为新版本;在第一轮开始后短时只读核实际raw标记与节奏,若未激活不继续后续轮。当前活动60不是准入,新五槽仍需真实保全。所有旧失败保留。

### Implementation / Software Update · 2026-10-21 · ARM198

两个真实入口现按具名publication_interval_ms=interval_ms计算policy,来源intervalMs仍独立;新增真实stream direct/prewarm × source默认/500四组合,替代设备I/O但保留实际编排和发表,均通过。旧误接线反控4组合均被拒绝、无错误,证明用例能发现原遗漏。11项cadence/间隔测试及27专属合同控制通过;198与197同受来源/成本门约束。

2797/2797完整Core串行回归通过E2,0skip/失败/错误,128.139763秒,最大分片RSS196100096B。以f7b17a88为旧源码的50k事件三组基准:wall中位比0.989667,峰值RSS差-32964608B,当前最大P95 35042ns、最差1.671708ms、首响应79.875–94.333µs,六组checksum一致且block I/O0。该基准只测事件处理链;真实编排覆盖由集成用例承担,不将其说成手机开销或来源频率通过。

a05原件只读诊断:151产品样本,前120有效118,缺87/89,最大有效gap2.000752375秒;原valid-coverage失败不变。新formal-a06独占prefix,五新轮/ARM198/Lab26、全部旧门不变;先已独立完成的a06 OFF准备六件4368185B核SHA,再原容器单项rename60→59,失败正式a01–a05原位保留、删除0。五轮首轮同时核实际配置/频率及预定成本门,首失败停止。软件通过不等于正式通过,仍32/66、Renderer0/5。