KytyPlus v4.9
Two follow-ups to last release: Apple Silicon no longer aborts during startup, and a refused
texture allocation gets one more attempt before the run ends.
Apple Silicon startup (issue #18)
- v4.8 could not start on an M1 at all. Requiring the AGC driver DMEM at a fixed guest address
was the right instinct but the wrong mechanism: macOS runs the x86_64 build under Rosetta, which
reserves that range, so the mapping failed outright and the emulator aborted in driver startup
before a single frame. Last release's MoltenVK fix had already gotten those machines as far as
this, so v4.8 shipped a regression for them. - The preferred address is now a preference, not a demand. It is requested as a fixed mapping
first, and if the kernel cannot honor it the returned address is used instead — with the driver's
binding table derived from wherever it actually landed rather than from the constant, which is
what made the original assertion necessary in the first place. When that happens the log says
so, naming both addresses. - Windows is unaffected: verified there that the preferred address is still granted, so the
addresses the driver writes are identical to before.
Texture allocation under memory pressure (issue #17)
- A refused image no longer ends the run on the first attempt. Demon's Souls was dying in
vkCreateImagewithErrorOutOfDeviceMemoryon a 2048x2048, 12-level BC1 texture — about
2.7 MB. A request that small failing means the device was already full, not that the request was
unreasonable, so the buffer cache is now trimmed and the creation retried once. - The buffer cache only, deliberately. Image creation happens while callers hold the texture
cache lock, so evicting textures from there would have deadlocked instead of helping. - This is containment, not a cure. If nothing is reclaimable the run still ends, and it does
not explain why memory fills up in the first place.
Known issues
- Device-memory exhaustion remains the open problem, and it now spans titles: this same release
window has seen it at image creation and atvkQueueSubmit. The retry paths log a heap dump when
they trigger, so the next reports should show how close to budget these machines actually were. - Apple Silicon startup past this point is unconfirmed by us — no one here has M1 hardware to test
on, and block-compressed texture support is a likely next obstacle.