Fix typo that was setting the dstExtent from the source image. This was
causing Desktop-Friendly fullscreen resolution not to render correctly
in Dota.
MVKBufferView add lock when creating MTLTexture.
MVKDeviceMemory add lock when creating MTLBuffer during memory mapping.
MVKMTLBufferAllocator does not need to be threadsafe.
Cleanup syntax on other lock handling to add consistency.
If there is no depth attachment, Metal Validation will give the
following error: "validateDepthStencilState:3657: failed assertion
`MTLDepthStencilDescriptor sets depth test but MTLRenderPassDescriptor
has a nil depthAttachment texture'". Fix by checking the current
subpass to see if there is a depth/stencil attachment, and if not use a
depth/stencil state with depth test always, depth write disabled, and no
stencil state.
* Move mutex lock in MVKBuffer::getMTLBuffer() to be after checking
MVKDeviceMemory::getMTLBuffer() so we don't always lock in that case
* Fix comment I put in the wrong place in previous commit
The problem was that MVKBuffer::getMTLBuffer() was not thread-safe. If
multiple threads called it at the same time, more than one underlying
_mtlBuffer would be created. This could make the vkCmdCopyBufferToImage
copy from an unfilled buffer leaving the texture corrupted. I also
added similar thread safety to MVKImage::getMTLTexture() and
MVKImageView::getMTLTexture() since they both looked like they would
have the same potential problem.
In debug mode, ensure scissors fit inside renderpass area to avoid Metal validation assertions.
Consolidate setting of viewport and scissors by pipeline and command.
Log which GPU is attached to a VkDevice.
Sort multiple GPU's to put higher-power GPU's at front of list.
Use pipelineStatisticsQuery feature to determine whether pipeline stats are available.
Update to latest SPIRV-Cross.
* In the case of vkCmdBlitImage with formats that don't match, use the Metal Blit render path and don't return an error.
* Fix MvkCmdBlitImage::populateVertices which had the source and destination y shifted.
Fix OOM conditions with multiple consecutive two-vector OpVectorShuffles.
Support non-square row-major matrix conversions.
Add ability to write SPIR-V to file for debugging purposes.
Update ThirdPartyConfig.md to latest use of SPIRV-Cross testability.
Update to latest SPIRV-Cross version.
Improved extraction of entry point name and workgroup size from SPIR-V.
Consolidate to a single ThirdPartyConfig.md document.
MSL enhancements to nested function use of globals.
Support customizing MSL based on iOS or macOS platform.
MSL threadgroup barrier memory scope only on iOS MSL 2.0.
Update to latest SPIRV libraries.
Use clang instead of libtool for building dynamic library from static library.
Fix SDK issue when building dylib with Xcode 9 on Sierra.
Add scripts to update submodules to latest versions.
Update to latest versions of submodules.
Remove Brenwill code signing IDs from Demo projects.