diff --git a/renderdoc/driver/metal/metal_command_buffer_bridge.mm b/renderdoc/driver/metal/metal_command_buffer_bridge.mm index d4fb29c21..a5e99ee68 100644 --- a/renderdoc/driver/metal/metal_command_buffer_bridge.mm +++ b/renderdoc/driver/metal/metal_command_buffer_bridge.mm @@ -286,4 +286,17 @@ return [self.real popDebugGroup]; } +- (void)useResidencySet:(id)residencySet API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + return [self.real useResidencySet:residencySet]; +} + +- (void)useResidencySets:(const id _Nonnull[_Nonnull])residencySets + count:(NSUInteger)count API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + return [self.real useResidencySets:residencySets count:count]; +} + @end diff --git a/renderdoc/driver/metal/metal_command_queue_bridge.mm b/renderdoc/driver/metal/metal_command_queue_bridge.mm index 1a30302f2..2db0d1475 100644 --- a/renderdoc/driver/metal/metal_command_queue_bridge.mm +++ b/renderdoc/driver/metal/metal_command_queue_bridge.mm @@ -108,4 +108,30 @@ } #pragma clang diagnostic pop +- (void)addResidencySet:(id)residencySet API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + [self.real addResidencySet:residencySet]; +} + +- (void)addResidencySets:(const id _Nonnull[_Nonnull])residencySets + count:(NSUInteger)count API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + [self.real addResidencySets:residencySets count:count]; +} + +- (void)removeResidencySet:(id)residencySet API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + [self.real removeResidencySet:residencySet]; +} + +- (void)removeResidencySets:(const id _Nonnull[_Nonnull])residencySets + count:(NSUInteger)count API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + [self.real removeResidencySets:residencySets count:count]; +} + @end diff --git a/renderdoc/driver/metal/metal_device_bridge.mm b/renderdoc/driver/metal/metal_device_bridge.mm index a01715bc8..ec5271b2c 100644 --- a/renderdoc/driver/metal/metal_device_bridge.mm +++ b/renderdoc/driver/metal/metal_device_bridge.mm @@ -192,6 +192,13 @@ return self.real.currentAllocatedSize; } +- (id)newLogStateWithDescriptor:(MTLLogStateDescriptor *_Nonnull)descriptor + error:(NSError **)error API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + return [self.real newLogStateWithDescriptor:descriptor error:error]; +} + - (nullable id)newCommandQueue { return id(GetWrapped(self)->newCommandQueue()); @@ -203,6 +210,13 @@ return [self.real newCommandQueueWithMaxCommandBufferCount:maxCommandBufferCount]; } +- (id)newCommandQueueWithDescriptor:(MTLCommandQueueDescriptor *)descriptor + API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + return [self.real newCommandQueueWithDescriptor:descriptor]; +} + - (MTLSizeAndAlign)heapTextureSizeAndAlignWithDescriptor:(MTLTextureDescriptor *)desc API_AVAILABLE(macos(10.13), ios(10.0)) { @@ -941,4 +955,12 @@ } #endif +- (id)newResidencySetWithDescriptor:(MTLResidencySetDescriptor *)desc + error:(NSError *__nullable *)error + API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + return [self.real newResidencySetWithDescriptor:desc error:error]; +} + @end diff --git a/renderdoc/driver/metal/metal_render_pipeline_state_bridge.mm b/renderdoc/driver/metal/metal_render_pipeline_state_bridge.mm index b0370e940..ce20a7c9b 100644 --- a/renderdoc/driver/metal/metal_render_pipeline_state_bridge.mm +++ b/renderdoc/driver/metal/metal_render_pipeline_state_bridge.mm @@ -183,4 +183,10 @@ error:error]; } +- (MTLShaderValidation)shaderValidation API_AVAILABLE(macos(15.0), ios(18.0)) +{ + METAL_NOT_HOOKED(); + return self.real.shaderValidation; +} + @end