From a5011de0a27dc60717e70757307f76cf039f2c58 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Wed, 3 Jul 2024 19:03:24 -0400 Subject: [PATCH] Wrap Metal 3 argument buffer references in Xcode 14 guard code. --- MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm | 6 ++++++ MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm index 9dbba6e3e..7d007ce49 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDescriptorSet.mm @@ -44,7 +44,9 @@ if (_mtlArgumentEncoder) { [_mtlArgumentEncoder setBuffer: mtlBuff offset: offset atIndex: index]; } else { +#if MVK_XCODE_14 *(uint64_t*)getArgumentPointer(index) = mtlBuff.gpuAddress + offset; +#endif } } @@ -52,7 +54,9 @@ if (_mtlArgumentEncoder) { [_mtlArgumentEncoder setTexture: mtlTex atIndex: index]; } else { +#if MVK_XCODE_14 *(MTLResourceID*)getArgumentPointer(index) = mtlTex.gpuResourceID; +#endif } } @@ -60,7 +64,9 @@ if (_mtlArgumentEncoder) { [_mtlArgumentEncoder setSamplerState: mtlSamp atIndex: index]; } else { +#if MVK_XCODE_14 *(MTLResourceID*)getArgumentPointer(index) = mtlSamp.gpuResourceID; +#endif } } diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 72339bdd3..0ce227821 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -2402,10 +2402,14 @@ _properties.vendorID == kIntelVendorId)); // Argument encoders are not needed if Metal 3 plus Tier 2 argument buffers. +#if MVK_XCODE_14 _metalFeatures.needsArgumentBufferEncoders = (_metalFeatures.argumentBuffers && !(mvkOSVersionIsAtLeast(13.0, 16.0, 1.0) && supportsMTLGPUFamily(Metal3) && _metalFeatures.argumentBuffersTier >= MTLArgumentBuffersTier2)); +#else + _metalFeatures.needsArgumentBufferEncoders = _metalFeatures.argumentBuffers; +#endif _isUsingMetalArgumentBuffers = _metalFeatures.descriptorSetArgumentBuffers && getMVKConfig().useMetalArgumentBuffers;; @@ -3486,7 +3490,9 @@ static uint32_t mvkGetEntryProperty(io_registry_entry_t entry, CFStringRef prope logMsg += "\n\tMetal Shading Language %s"; logMsg += "\n\tsupports the following GPU Features:"; +#if MVK_XCODE_14 if (supportsMTLGPUFamily(Metal3)) { logMsg += "\n\t\tGPU Family Metal 3"; } +#endif #if MVK_XCODE_15 && (MVK_IOS || MVK_MACOS) if (supportsMTLGPUFamily(Apple9)) { logMsg += "\n\t\tGPU Family Apple 9"; } #endif