An emulator pretends to be different hardware and pays for every instruction. A translation layer runs the same instructions natively and only rewrites the calls that cross into the operating system. That distinction sets the whole cost model.

The first time a scene appears, shaders are compiled. That is the hitch, and why a cache fixes it only the second time.
NO. 008 · MEDIUM
A program that wrote Textures/ and reads textures/ works on one system and fails on another. The commonest and dullest breakage there is.
NO. 011 · MEDIUM
Frame time, not frame rate: an average hides the one frame in sixty that took four times as long, and that is the one you feel.
NO. 015 · MEDIUMEach entry names the boundary being crossed and what it costs — a call translated, a path rewritten, a shader compiled, a frame missed.
Where one system's assumptions meet another's.
5 ENTRIES → PIPELINEGraphics calls, translated on the way through.
5 ENTRIES → FILESYSTEMPaths, cases and the things nobody had to think about.
4 ENTRIES → FRAME TIMEWhere the milliseconds actually go.
5 ENTRIES → BENCHMeasuring it honestly.
4 ENTRIES →