From bea0621625a2adc6aa518e6450201fa8a6d99882 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Sat, 13 Apr 2024 16:17:57 +0100 Subject: [PATCH] Metal updates for MacSDK 14.4 Add MTLResource::setOwnerWithIdentity to ObjCBridgeMTLTexture and ObjCBridgeMTLBuffer --- renderdoc/driver/metal/metal_buffer_bridge.mm | 11 ++++++++++- renderdoc/driver/metal/metal_texture_bridge.mm | 11 ++++++++++- renderdoc/driver/metal/metal_types_bridge.h | 4 ++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/metal/metal_buffer_bridge.mm b/renderdoc/driver/metal/metal_buffer_bridge.mm index 0a15fdb30..ba33dd1a0 100644 --- a/renderdoc/driver/metal/metal_buffer_bridge.mm +++ b/renderdoc/driver/metal/metal_buffer_bridge.mm @@ -63,7 +63,7 @@ } // MTLResource : based on the protocol defined in -// Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLResource.h +// Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLResource.h - (nullable NSString *)label { @@ -132,6 +132,15 @@ return [self.real isAliasable]; } +#if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_14_4 +- (kern_return_t)setOwnerWithIdentity:(task_id_token_t)task_id_token + API_AVAILABLE(ios(17.4), watchos(10.4), tvos(17.4), macos(14.4)) +{ + METAL_NOT_HOOKED(); + return [self.real setOwnerWithIdentity:task_id_token]; +} +#endif + // MTLBuffer : based on the protocol defined in // Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBuffer.h diff --git a/renderdoc/driver/metal/metal_texture_bridge.mm b/renderdoc/driver/metal/metal_texture_bridge.mm index 41e3c53f2..d59bc7f88 100644 --- a/renderdoc/driver/metal/metal_texture_bridge.mm +++ b/renderdoc/driver/metal/metal_texture_bridge.mm @@ -63,7 +63,7 @@ } // MTLResource : based on the protocol defined in -// Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLResource.h +// Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLResource.h - (nullable NSString *)label { @@ -132,6 +132,15 @@ return [self.real isAliasable]; } +#if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_14_4 +- (kern_return_t)setOwnerWithIdentity:(task_id_token_t)task_id_token + API_AVAILABLE(ios(17.4), watchos(10.4), tvos(17.4), macos(14.4)) +{ + METAL_NOT_HOOKED(); + return [self.real setOwnerWithIdentity:task_id_token]; +} +#endif + // MTLTexture : based on the protocol defined in // Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h diff --git a/renderdoc/driver/metal/metal_types_bridge.h b/renderdoc/driver/metal/metal_types_bridge.h index 29d293675..b4758a36c 100644 --- a/renderdoc/driver/metal/metal_types_bridge.h +++ b/renderdoc/driver/metal/metal_types_bridge.h @@ -71,3 +71,7 @@ inline WrappedMTLResource *GetWrapped(id objC) #ifndef __MAC_14_0 #define __MAC_14_0 140000 #endif + +#ifndef __MAC_14_4 +#define __MAC_14_4 140400 +#endif