github Coder787-source/KytyPlus v4.7

5 hours ago

KytyPlus v4.7

An Apple Silicon Mac could not create a Vulkan device at all, so no game could start. That gate
is gone.

MoltenVK device selection (issue #18)

  • Every macOS device was being rejected before a game loaded. A reporter on an M1 got
    Could not find suitable device, naming four features: image view minLod,
    shaderBufferInt64Atomics, nullDescriptor and shaderCullDistance. These are not
    borderline cases — MoltenVK hard-codes nullDescriptor to false, reports
    shaderBufferInt64Atomics false, states maxCullDistances = 0 // unsupported, and exposes no
    VK_EXT_image_view_min_lod. Requiring them meant requiring something no Mac can answer, so the
    emulator never reached vkCreateDevice.
  • Those capabilities are needed per shader, not per device. The SPIR-V emitter asks for the
    Int64Atomics capability only for shaders that perform 64-bit atomics, and CullDistance only
    for shaders that write gl_CullDistance. Selecting the device without them costs an individual
    shader at worst instead of the whole title.
  • Null descriptors were never actually used. An unbound shader resource resolves to the shared
    dummy buffer, not to a null descriptor, so requiring that feature gained nothing.
  • Image views fall back to the base mip level. VK_EXT_image_view_min_lod is now probed on
    macOS instead of required, and a view only carries a minimum-LOD parameter when the device can
    honour it. Windows and Linux still require it, so their behaviour is unchanged.
  • vkCreateDevice is no longer asked for features the device reports as unsupported. The
    emulator requested nullDescriptor and shaderCullDistance unconditionally, which is invalid
    input for a device that does not have them. This is fixed on every platform, not just macOS.

Known issues

  • Nobody on this project has Apple Silicon hardware. The macOS branches are compile-verified by CI,
    but not run on an M1 — if you filed #18, please retest and report the new log.
  • A second gate may still stop some Macs. The device check also requires a block-compressed format
    to be usable as both a sampled image and a blit destination; Apple GPUs can sample BC, but may not
    offer that second use. If it fires, the log now names the format rather than a list of features.
  • The macOS package is still x86_64-only, so Apple Silicon users run it through Rosetta.

Don't miss a new KytyPlus release

NewReleases is sending notifications on new releases.