Merge pull request #683 from billhollings/master

Updates for SDK 1.1.114 release.
This commit is contained in:
Bill Hollings 2019-07-23 17:22:40 -04:00 committed by GitHub
commit a945872cf3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 2363 additions and 2333 deletions

View File

@ -16,9 +16,10 @@ For best results, use a Markdown reader.*
MoltenVK 1.0.36
---------------
Released TBD
Released 2019/07/25
- Add support for extensions:
- `VK_KHR_device_group_creation`
- `VK_KHR_swapchain_mutable_format`
- `VK_KHR_uniform_buffer_standard_layout`
- `VK_EXT_metal_surface`
@ -30,14 +31,28 @@ Released TBD
- `VK_AMD_shader_image_load_store_lod`
- `VK_AMD_shader_trinary_minmax`
- `VK_INTEL_shader_integer_functions2`
- Support `VK_FORMAT_A2R10G10B10_UNORM_PACK32` as a surface format and view format.
- For shaders created directly from MSL, set function name from
`VkPipelineShaderStageCreateInfo::pName`.
- On iOS GPU family 2 and earlier, support immutable depth-compare samplers
as constexpr samplers hardcoded in MSL.
as `constexpr` samplers hardcoded in MSL.
- `vkCmdCopyImage()` support copying between compressed and uncompressed formats
and validate that formats are compatible for copying.
- `vkCmdBufferImageCopy()` fix crash when setting bytes per image in non-arrayed images.
- `vkCmdBlitImage()` supports blit between different texture formats, and multisampled images.
- `vkCmdResolveImage()` supports textures of different sizes.
- `vkCmdClearImage()` returns error if texture is not renderable.
- Move push constant binding to `vkCmdBindPipeline()` from `vkCmdBindDescriptorSet()`.
- `MVKDeviceMemory` keep `MTLResourceOptions` aligned with `MTLStorageMode` & `MTLCPUCacheMode`.
- Texture memory requirements don't use shared storage on macOS.
- Add `MTLCommandBuffer` completion timing performance tracking option.
- Expand `MVK_CONFIG_TRACE_VULKAN_CALLS` to optionally log Vulkan call timings.
- Skip `SPIRV-Tools` build in Travis because Travis does not support the required Python 3.
- Separate `SPIRVToMSLConverterContext` into input config and output results.
- Use native Metal texture buffers when available.
- Fix issue with push constants used across multiple draw calls not being applied.
- Fix memory leak in debug marker and debug utils labelling.
- Reduce memory leaks when autorelease pools are not available.
- Fix pipeline cache lookups.
- Fix race condition between swapchain image destruction and presentation completion callback.
- Set Metal texture usage to allow texture copy via view.
@ -47,24 +62,46 @@ Released TBD
- Return error when `MVKImage` created as 1D attachment.
- Reduce use of autoreleased Obj-C objects, and ensure those remaining are
covered by deliberate autorelease pools.
- `vkCmdCopyImage()` support copying between compressed and uncompressed formats
and validate that formats are compatible for copying.
- `vkCmdBufferImageCopy()` fix crash when setting bytes per image in non-arrayed images.
- Document that the functions in `vk_mvk_moltenvk.h` cannot be used with objects
retrieved through the *Vulkan SDK Loader and Layers* framework.
- Update `VK_MVK_MOLTENVK_SPEC_VERSION` to 21.
- Update to latest SPIRV-Cross version:
- MSL: Add support for `SubgroupSize` / `SubgroupInvocationID` in fragment.
- MSL: Support `SPV_KHR_multiview` extension.
- MSL: Support the `SPV_KHR_post_depth_coverage` extension.
- MSL: Support the `SPV_AMD_shader_trinary_minmax` extension.
- MSL: Support the `SPV_KHR_device_group` extension.
- MSL: Support the `SPV_INTEL_shader_integer_functions2` extension.
- MSL: Support `SubgroupSize` / `SubgroupInvocationID` in fragment.
- MSL: Support `OpImageQueryLod`.
- MSL: Support `MinLod` operand.
- MSL: Support `PrimitiveID` in fragment and barycentrics.
- MSL: Support 64-bit integers.
- MSL: New SDK errors out on cull distance.
- MSL: Support `OpOuterProduct`.
- MSL: Support `SubgroupLocalInvocationId` and `SubgroupSize` in all stages.
- MSL: Support scalar reflect and refract.
- MSL: Support scalar block layout.
- MSL: Use the `select()` function for `OpSelect`.
- MSL: Handle `coherent`, `volatile`, and `restrict`.
- MSL: Fix alignment of packed types.
- MSL: Handle packed matrices.
- MSL: Conditionally validate MSL 2.2 shaders.
- MSL: Rewrite how resource indices are fallback-assigned.
- MSL: Support custom bindings for argument buffers.
- MSL: Fix sampling with FP16 coordinates.
- MSL: Fix sampling with `FP16` coordinates.
- MSL: Deal with scalar input values for distance/length/normalize.
- MSL: Error out on `int64_t/uint64_t` buffer members as unsupported by Metal.
- MSL: Deal with scalar input values for distance/length/normalize.
- MSL: Re-roll array expressions in initializers.
- MSL: New SDK errors out on cull distance.
- Rewrite how switch block case labels are emitted.
- Fixes to handling of `OpPhi` and case fallthrough.
- Fix declaration of loop variables with a `OpPhi` helper copy.
- Handle more cases with FP16 and texture sampling.
- Fix variable scope when an `if` or `else` block dominates a variable.
- Fall back to complex loop if non-trivial continue block is found.
- Remove unreasonable assertion for `OpTypeImage Sampled` parameter.
- Propagate NonUniformEXT to dependent expressions.
- Deal correctly with return sign of bitscan operations.

File diff suppressed because it is too large Load Diff

View File

@ -182,12 +182,11 @@ the *SPIRV-Tools* library to the `ExternalDependencies` *Xcode* project as follo
1. In the *Project Navigator*, remove the *Group* named `source` from under the *Group* named
`External/SPIRV-Tools`.
2. Drag the `External/glslang/Extermal/spirv-tools/source` file folder to the `External/SPIRV-Tools`
2. Drag the `External/glslang/External/spirv-tools/source` file folder to the `External/SPIRV-Tools`
group in the *Project Navigator* panel. In the _**Choose options for adding these files**_ dialog
that opens, select the _**Create groups**_ option, add the files to *both* the `SPIRV-Tools-macOS`
and `SPIRV-Tools-iOS` targets, and click the ***Finish*** button.
3. Remove the *Group* named `fuzz` from under the *Group* named `External/SPIRV-Tools/source`.
4. In the *Project Navigator* panel, select the `ExternalDependencies` *Xcode* project, then

View File

@ -1 +1 @@
737f4c1cd96283747967c2024a0108b742214455
e3f96a9ccab9397481eb81c4d9bce4ea7590dc33

View File

@ -1 +1 @@
d2de4ac0a28766c6fb10968fdcc4d75566eef8d7
fb1fd1d63eb20cc6f922228f04d8b96cec452b46

View File

@ -1 +1 @@
c6df494e270b5afad6bf5aaca725a037abe10501
5a52ebd648b5baf94f2346819b5cf3fdc14b4127

View File

@ -1 +1 @@
21eebe74214488264bbf0d19323a03c13a9e53a7
333d1c95792692205472c457d7bec915a94c8000

View File

@ -133,8 +133,8 @@ void MVKPhysicalDevice::getFeatures(VkPhysicalDeviceFeatures2* features) {
portabilityFeatures->samplerMipLodBias = false;
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
auto* shaderIntFuncsFeatures = (VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*)next;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL: {
auto* shaderIntFuncsFeatures = (VkPhysicalDeviceShaderIntegerFunctions2INTEL*)next;
shaderIntFuncsFeatures->shaderIntegerFunctions2 = true;
break;
}

View File

@ -76,7 +76,7 @@ MVK_EXTENSION(AMD_negative_viewport_height, AMD_NEGATIVE_VIEWPORT_HEIGHT)
MVK_EXTENSION(AMD_shader_image_load_store_lod, AMD_SHADER_IMAGE_LOAD_STORE_LOD)
MVK_EXTENSION(AMD_shader_trinary_minmax, AMD_SHADER_TRINARY_MINMAX)
MVK_EXTENSION(IMG_format_pvrtc, IMG_FORMAT_PVRTC)
MVK_EXTENSION(INTEL_shader_integer_functions2, INTEL_SHADER_INTEGER_FUNCTIONS_2)
MVK_EXTENSION(INTEL_shader_integer_functions2, INTEL_SHADER_INTEGER_FUNCTIONS2)
MVK_EXTENSION_LAST(NV_glsl_shader, NV_GLSL_SHADER)
#undef MVK_EXTENSION