d2r-mobile (Diablo II: Resurrected iOS/macOS compatibility layer), specifically the feasibility of porting an older Metal backend to iOS 17.0 / A16.
Raw Developer Origin & Technical Request
GitHub Issue
Oct 14, 2026
## 问题性质
想咨询 **iOS 17.0 的旧 Metal 接口移植可行性**,以及应该对齐哪些上游实现。这是自行修改的非官方兼容构建,不将其卡顿当作未经修改的上游 bug,也不是请求游戏文件或安装包。
## 环境与基线
- 构建环境:macOS 15.7.2 / arm64,Xcode 26.3(17C529)。
- iPhone 14 Pro Max(iPhone15,3,A16,6 GB),iOS 17.0(21A329)。希望保留当前系统及 TrollStore。
- 安装方式:TrollStore;本地 IPA 临时签名,不是官方发行壳,也没有付费账号的 iCloud 能力。
- 基于 **v1.0.13 / `f43480dc486e9b8f6f5196057c61209e196794e2`**;截至本次检查,main 为 `685d3dd`,标签之后只有 README 改动。
- 本地测试构建:1.0.13 / 2026101408;实际程序产物 **r44-touch**,不是只更换目录名或版本号。
- 已读 `OLDER_SYSTEMS.zh-CN.md`:官方旧接口最低 iOS 18,所以这里是在询问额外的 iOS 17 支持边界。
## 已做的修改概述
1. 部署目标与着色器产物最低版本改为 **17.0**;隔离高版本托管资源下载接口及新系统性能接口,保留本地资源导入。
2. NVN 后端改用传统 Metal 队列、命令缓冲和编码器;增加 GPU 地址到 buffer+offset 的弱引用索引,并按实际引用的纹理/缓冲声明资源,而非每次声明全部资源。参考了上游 `DM_NVN_M3`,但目前仍是自定义兼容实现,不是官方 M3 分支原样构建。
3. 修复在途参数复用:泛光参数使用 fence 保护的快照,present 参数逐次编码快照,避免共享小环被后续帧覆盖。
4. 曾在 iOS 17 发生 `CAMetalDrawableInvalidOperation: -presentAfterMinimumDuration should not be called when using CAMetalDisplayLink.`;目前保留 **先 commit、再直接 drawable.present** 的路径,并对系统分享/键盘弹窗与后台增加独立呈现保护。这里与上游 M3 的 command-buffer presentation 有差异。
5. 同队列上传去掉 CPU 轮询等待,增加由完成事件控制的 3×4 MiB 暂存复用,保留回退开关。当前设备日志中该等待计数为0,不能把宿主微基准的收益当作真实游戏提升。
6. 已同步 v1.0.13 功能、重新生成 main/sdk/subsdk0 的 r44 产物并核对嵌入段;A16 使用完整 ASTC 配套包,设备校验通过。未改变游戏资源读取格式,也未开启运行时外推来冒充真帧。
## 验证范围与实际情况
- Mac 上:三模块改写等价/结构检查、146 个门功能检查,以及宿主、触控和选取的图形回归通过;包内最低系统17.0,未见 MTL4 未定义符号。**这些不作为设备运行证明**。完整真值验收 `accept.sh` 未运行。
- iOS17 真机:已进入游戏并移动、切换区域,约5–6分钟日志中有11次正常存档提交,18个资源归档及ASTC包校验通过。
- 性能仍不稳定:目标60时,一段接近60,后面约38–41。部分窗口的上屏间隔约一半16.7ms、一半3...
Developer Debate & Comments
No active discussions extracted for this entry yet.
Adjacent Repository Pain Points
Other highly discussed features and pain points extracted from jhaizhou-ops/d2r-mobile.
Frequently Asked Questions
Market intelligence mapped to d2r-mobile (Diablo II: Resurrected iOS/macOS compatibility layer), specifically the feasibility of porting an older Metal backend to iOS 17.0 / A16..
How is d2r-mobile (Diablo II: Resurrected iOS/macOS compatibility layer), specifically the feasibility of porting an older Metal backend to iOS 17.0 / A16. positioned in the market?
What architecture is tied to d2r-mobile (Diablo II: Resurrected iOS/macOS compatibility layer), specifically the feasibility of porting an older Metal backend to iOS 17.0 / A16.?
Engagement Signals
Cross-Market Term Frequency
Quantifies the cross-market adoption of foundational terms like d2r-mobile and Open-source iOS / macOS compatibility layer by tracking occurrence frequency across active SaaS architectures and enterprise developer debates.
SaaS Metrics