Repository navigation
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,nullDescriptorandshaderCullDistance. These are not
borderline cases — MoltenVK hard-codesnullDescriptorto false, reports
shaderBufferInt64Atomicsfalse, statesmaxCullDistances = 0 // unsupported, and exposes no
VK_EXT_image_view_min_lod. Requiring them meant requiring something no Mac can answer, so the
emulator never reachedvkCreateDevice. - Those capabilities are needed per shader, not per device. The SPIR-V emitter asks for the
Int64Atomicscapability only for shaders that perform 64-bit atomics, andCullDistanceonly
for shaders that writegl_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_lodis 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. vkCreateDeviceis no longer asked for features the device reports as unsupported. The
emulator requestednullDescriptorandshaderCullDistanceunconditionally, 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.