From e9c4b4813b0577b6aea8d0bc256258c36eca20e3 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 11 Sep 2020 11:16:34 -0400 Subject: [PATCH 1/2] Cleanup Vulkan 1.1 info. Update remaining documents to reference Vulkan 1.1 instead of 1.0. Per Vulkan 1.1 spec, remove now-obsolete MVKInstance code that emits error if app requests higher Vulkan version. Upgrade MoltenVK version to 1.1.0. --- Docs/Whats_New.md | 6 +++--- MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h | 4 ++-- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 12 ------------ README.md | 8 ++++---- 4 files changed, 9 insertions(+), 21 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index f13de5af..b34e5a71 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -13,10 +13,10 @@ For best results, use a Markdown reader.* -MoltenVK 1.0.45 ---------------- +MoltenVK 1.1.0 +-------------- -Released TBD +Released 2020/09/28 - Add support for Vulkan 1.1, including: - The `vkEnumerateInstanceVersion()` function diff --git a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h index 2c4eb20c..309097ac 100644 --- a/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h +++ b/MoltenVK/MoltenVK/API/vk_mvk_moltenvk.h @@ -49,8 +49,8 @@ typedef unsigned long MTLLanguageVersion; * - 401215 (version 4.12.15) */ #define MVK_VERSION_MAJOR 1 -#define MVK_VERSION_MINOR 0 -#define MVK_VERSION_PATCH 45 +#define MVK_VERSION_MINOR 1 +#define MVK_VERSION_PATCH 0 #define MVK_MAKE_VERSION(major, minor, patch) (((major) * 10000) + ((minor) * 100) + (patch)) #define MVK_VERSION MVK_MAKE_VERSION(MVK_VERSION_MAJOR, MVK_VERSION_MINOR, MVK_VERSION_PATCH) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 0d13f563..e8d42d6a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -349,18 +349,6 @@ MVKInstance::MVKInstance(const VkInstanceCreateInfo* pCreateInfo) : _enabledExte getDriverLayer()->getSupportedInstanceExtensions())); logVersions(); // Log the MoltenVK and Vulkan versions - // If we only support Vulkan 1.0, we must report an error if a larger Vulkan version is requested. - // If we support Vulkan 1.1 or better, per spec, we never report an error. - if ((MVK_VULKAN_API_VERSION_CONFORM(MVK_VULKAN_API_VERSION) < - MVK_VULKAN_API_VERSION_CONFORM(VK_API_VERSION_1_1)) && - (MVK_VULKAN_API_VERSION_CONFORM(MVK_VULKAN_API_VERSION) < - MVK_VULKAN_API_VERSION_CONFORM(_appInfo.apiVersion))) { - setConfigurationResult(reportError(VK_ERROR_INCOMPATIBLE_DRIVER, - "Request for Vulkan version %s is not compatible with supported version %s.", - mvkGetVulkanVersionString(_appInfo.apiVersion).c_str(), - mvkGetVulkanVersionString(MVK_VULKAN_API_VERSION).c_str())); - } - // Populate the array of physical GPU devices. // This effort creates a number of autoreleased instances of Metal // and other Obj-C classes, so wrap it all in an autorelease pool. diff --git a/README.md b/README.md index b460cde9..0591f77e 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ document in the `Docs` directory. Introduction to MoltenVK ------------------------ -**MoltenVK** is a layered implementation of [*Vulkan 1.0*](https://www.khronos.org/vulkan) +**MoltenVK** is a layered implementation of [*Vulkan 1.1*](https://www.khronos.org/vulkan) graphics and compute functionality, that is built on Apple's [*Metal*](https://developer.apple.com/metal) graphics and compute framework on *macOS*, *iOS*, and *tvOS*. **MoltenVK** allows you to use *Vulkan* graphics and compute functionality to develop modern, cross-platform, high-performance graphical @@ -76,7 +76,7 @@ channels, including *Apple's App Store*. The **MoltenVK** runtime package contains two products: - **MoltenVK** is a implementation of an almost-complete subset of the - [*Vulkan 1.0*](https://www.khronos.org/vulkan) graphics and compute API. + [*Vulkan 1.1*](https://www.khronos.org/vulkan) graphics and compute API. - **MoltenVKShaderConverter** converts *SPIR-V* shader code to *Metal Shading Language (MSL)* shader code, and converts *GLSL* shader source code to *SPIR-V* shader code and/or @@ -265,11 +265,11 @@ the contents of that directory out of this **MoltenVK** repository into your own **MoltenVK** and *Vulkan* Compliance ------------------------------------ -**MoltenVK** is designed to be an implementation of a *Vulkan 1.0* subset that runs on *macOS*, *iOS*, +**MoltenVK** is designed to be an implementation of a *Vulkan 1.1* subset that runs on *macOS*, *iOS*, and *tvOS* platforms by mapping *Vulkan* capability to native *Metal* capability. The fundamental design and development goal of **MoltenVK** is to provide this capability in a way that -is both maximally compliant with the *Vulkan 1.0* specification, and maximally performant. +is both maximally compliant with the *Vulkan 1.1* specification, and maximally performant. Such compliance and performance is inherently affected by the capability available through *Metal*, as the native graphics driver on *macOS*, *iOS*, and *tvOS* platforms. *Vulkan* compliance may fall into one of From b7b1435d8bc3fb18bcaf3484d6d5fa8b6f94b8ee Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Fri, 11 Sep 2020 11:35:44 -0400 Subject: [PATCH 2/2] Support Xcode 11.7. --- .../API-Samples/API-Samples.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/API-Samples-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/API-Samples-macOS.xcscheme | 2 +- Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-macOS.xcscheme | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-tvOS.xcscheme | 2 +- .../Hologram/Hologram.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Hologram-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/Hologram-macOS.xcscheme | 2 +- ExternalDependencies.xcodeproj/project.pbxproj | 2 +- .../xcschemes/ExternalDependencies (Debug).xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-tvOS.xcscheme | 2 +- MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/MoltenVK-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK-tvOS.xcscheme | 2 +- MoltenVKPackaging.xcodeproj/project.pbxproj | 2 +- .../xcschemes/MVKShaderConverterTool Package.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package (Debug).xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package (iOS only).xcscheme | 2 +- .../xcschemes/MoltenVK Package (macOS only).xcscheme | 2 +- .../xcschemes/MoltenVK Package (tvOS only).xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package.xcscheme | 2 +- .../MoltenVKShaderConverter.xcodeproj/project.pbxproj | 2 +- .../xcschemes/MoltenVKGLSLToSPIRVConverter-iOS.xcscheme | 2 +- .../xcschemes/MoltenVKGLSLToSPIRVConverter-macOS.xcscheme | 2 +- .../xcschemes/MoltenVKGLSLToSPIRVConverter-tvOS.xcscheme | 2 +- .../xcschemes/MoltenVKSPIRVToMSLConverter-iOS.xcscheme | 2 +- .../xcschemes/MoltenVKSPIRVToMSLConverter-macOS.xcscheme | 2 +- .../xcschemes/MoltenVKSPIRVToMSLConverter-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme | 2 +- 44 files changed, 44 insertions(+), 44 deletions(-) diff --git a/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj b/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj index fd36baa0..48723fec 100644 --- a/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj +++ b/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj @@ -547,7 +547,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1160; + LastUpgradeCheck = 1170; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "API-Samples" */; compatibilityVersion = "Xcode 8.0"; diff --git a/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/xcshareddata/xcschemes/API-Samples-iOS.xcscheme b/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/xcshareddata/xcschemes/API-Samples-iOS.xcscheme index cc7a3549..5275333c 100644 --- a/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/xcshareddata/xcschemes/API-Samples-iOS.xcscheme +++ b/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/xcshareddata/xcschemes/API-Samples-iOS.xcscheme @@ -1,6 +1,6 @@