mirror of
https://github.com/lucannez64/darling-lol.git
synced 2026-10-26 19:47:42 +00:00
League sets framebufferOnly=NO on its CAMetalLayer, and QuartzCore read that as needing host-visible coherent memory, so the game's final render target and the linear image handed to OpenGL both lived in system RAM (type 2 on the RX 6600) and crossed PCIe every frame. framebufferOnly=NO only lets Metal sample or blit the texture: nothing maps either image (replaceRegion aborts, getBytes is a stub, Indium maps only Shared/Managed buffers). Drawables now take the first allowed DEVICE_LOCAL type whatever framebufferOnly says; the guest file /tmp/metal-no-drawable-vram restores the old placement. metal-device.log shows drawable-vram=on and storage=vram. A native EGL/RADV test exported the drawable's linear image from VRAM and imported it into GL with no errors and identical pixels. In a practice-tool baron fight on the RX 6600 with the same champion it ran about 20 FPS faster and the same when idle; not yet measured in an ARAM. Co-Authored-By: Claude Opus 5.5 <[email protected]>