macos-alloc-bench measures the frame rate of an Ebitengine scene that the CPU cost of draw calls and render passes limits. It uses only the public Ebitengine API.
Each frame draws -draws 8x8 sprites with DrawImage into -targets offscreen images of 64x64 pixels, and then draws each offscreen image onto the screen. The draws alternate between BlendSourceOver and BlendLighter, so that no draws merge. The offscreen images are unmanaged, so each one has its own texture, and each change of destination starts a render pass. With -targets 64 -draws 6000, a frame has 6,128 draw calls and 128 render passes.
Vsync is off, the window is 1280x800, and the TPS is 60. The program skips 3 seconds of warm-up, measures 20 seconds, writes one JSON line, and quits.