As the feature flags get more complicated, it will be better to just
leave these blank rather than guess what the flags might be if/when
Metal supports their corresponding configs in the future.
Helps to fix#147
Support deferred secondary signaling of semaphore & fence acquired while image is free.
Add MVKBaseObject::destroy() function to support customization of object destruction.
Support deferred destruction of MVKSemaphore & MVKFence instances.
via vkGetPipelineCacheData(), vkCreatePipelineCache() & vkMergePipelineCaches().
Add the cereal serialization framework as a dependency.
Update documentation. Update project settings to Xcode 9.3.
Remove duplicate build of SPIRV-Tools in fetchDependencies.
Remove folder symlinks from Externals and MoltenVKShaderCompiler folders.
Update header search paths to reference External folders directly.
Update External/README.md documentation.
Update MoltenVK version to 1.0.1 to reflect new build instructions.
Minor update to performance logging.
Add MVKPhysicalDeviceMetalFeatures::mtlCopyBufferAlignment.
Set MTLComputeCommandEncoder label based on Vulkan command type.
Add MVKCommandUse::kMVKCommandUseDispatch.
* Vulkan allows any valid copy regions to be used in this function.
However, Metal's blit command encoder only allows copy offsets and
sizes which are multiples of 4 bytes.
* Before this change, attempting to copy such a region would cause
Metal validation errors to trigger.
* This adds logic to detect such copy regions and uses a special compute
shader to perform a byte-by-byte copy from the source buffer to
the destination buffer with the appropriate offsets.
* This new code path is only needed on macOS, because iOS does not share
the same copy region restrictions.
Load external library versions using script instead of Git submodules.
SPIRV-Cross, Vulkan-LoaderAndValidationLayers & VulkanSamples versions recorded in files.
glslang version determined by Vulkan-LoaderAndValidationLayers.
SPIRV-Tools & SPIRV-Headers versions loaded by glslang.
When MoltenVK is built as part of the LunarG SDK, use external libraries
sourced from parent Vulkan-LoaderAndValidationLayers.
Use Vulkan headers from Vulkan-LoaderAndValidationLayers.
No longer generate Vulkan specification.
Update documentation.
In order to determine the instance version, the 1.1 loader takes
advantage of the fact that a 1.0 ICD will return NULL for
vkGetInstanceProcAddr(NULL, "vkEnumerateInstanceVersion")
Fix MVKShaderLibrary missing function prototype warning.
Update to latest SPIRV-Cross.
Update to latest Vulkan-Hpp.
Update to latest Vulkan-LoaderAndValidationLayers.