- Only log performance stats on FPS logging if logging style is explicitly
set to MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE_FRAME_COUNT (unrelated).
The same compute encoder is used across dispatches and other commands,
which may override compute state, and end up breaking subsequent dispatches.
- Mark compute encoding state dirty when following commands,
which use Metal compute encoders, are issued:
- vkCmdCopyBuffer()
- vkCmdClearColorImage()
- vkCmdClearDepthStencilImage()
- vkCmdFillBuffer()
- vkCmdCopyQueryPoolResults()
- MVKCommandEncoder move marking compute state dirty from
endCurrentMetalEncoding() to getMTLComputeEncoder().
- For efficiency, don't prematurely force end of query copy compute encoder
used on renderpass end, in case compute dispatches follow.
- Update MoltenVK to 1.2.5 (unrelated).
Advertise VK_KHR_depth_stencil_resolve extension on early iOS devices,
since VK_RESOLVE_MODE_SAMPLE_ZERO_BIT is supported on all devices,
even if other resolve modes are not, and makes it consistent with
Vulkan 1.2 mandatory support for VK_RESOLVE_MODE_SAMPLE_ZERO_BIT.
- MTLDevice registryID is not constant across OS reboots,
which is not conformant with deviceUUID requirements.
- Replace with combination of MTLDevice location, locationNumber,
peerGroupID, and peerIndex, which should define uniqueness,
and should be constant across OS reboots.
- Populate deviceLUID from MTLDevice registryID.
- Report error, but do not fail on request for timestamp query pool
that is too large for MTLCounterSampleBuffer.
- Change reported error to VK_ERROR_OUT_OF_DEVICE_MEMORY and clarify
text of error reported when timestamp query pool is too large.
- Clarify error reported for occlusion query pool errors (unrelated).
- Make MVKDevice::enableFeatures() functions into templates to pass struct type.
- Add mvkGetAddressOfFirstMember() to retrieve the address of the first member of
a struct, taking into consideration whether the struct has a Vulkan pNext member.
- Add mvk::getTypeName() and mvk::getOrdinalSuffix() string functions.
Fix depth clamp and texture swizzle feature discovery on simulator builds
Both of these features are not supported by the iphone simulator
and leads to crashes when used
- Build one universal build, instead of per-platform.
- Upload this single build artifact to GitHub.
- Upgrade to v3 of action dependencies to remove Node.js deprecation warnings.
- Avoid use of deprecated set-output GitHub action command.
- Use macOS 13 and Xcode 14.3.
- README.md document access to binary artifacts.
- MVKPresentableSwapchainImage::presentCAMetalDrawable() and
addPresentedHandler() pass MVKImagePresentInfo by value instead
of reference, to avoid callbacks colliding with tracked
MVKImagePresentInfos being cleared when
MVKQueuePresentSurfaceSubmission is destroyed after it is run.
Also undeprecate the original vkGet/SetMoltenVKConfigurationMVK().
In expectation of the upcoming VK_EXT_layer_settings extension, it is felt that
adding these additional functions at this time would be confusing to app devs.
- Reinstate VK_MVK_moltenvk extension, but log warning message when it is enabled.
- Add vkGetMoltenVKConfiguration2MVK() and vkSetMoltenVKConfiguration2MVK()
to set config without passing a dummy VkInstance, and deprecate
vkGetMoltenVKConfigurationMVK() and vkSetMoltenVKConfigurationMVK().