ios – `makeComputePipelineState` causes app hold on older units

0
16
ios – `makeComputePipelineState` causes app hold on older units


I am going through a bizarre bug the place my app hangs when calling makeComputePipelineState with a “difficult” metallic perform.

By difficult, I meant having a bit extra logic within the perform, most features work high quality, however I’ve 2 metallic features with this subject.
The older the system, the longer it hangs. On iPad sixth, it hangs till crashed, and typically on iPad seventh as properly. Something newer has a really brief hold or no hold in any respect.

Moreover, it solely occurs for the primary time, if it manages to get by means of the hold with out being killed by iOS, the next calls will work completely.

Occurs throughout all iOS variations.

Right here is the stack hint for the hold:

CrashReporter Key:  --
{Hardware} Mannequin:     iPad7,5
Course of:            MyApp
Identifier:         com.MyApp
Model:            2.42.4
Position:               Foreground
OS Model:         iOS 16.1.1


App Cling: The app was terminated whereas unresponsive

0  libsystem_kernel.dylib +0x1190  _mach_msg2_trap
1  libsystem_kernel.dylib +0x12a04 _mach_msg2_internal
2  libsystem_kernel.dylib +0x12c40 _mach_msg_overwrite
3  libsystem_kernel.dylib +0x1684  _mach_msg
4  libdispatch.dylib +0x1b0ec      __dispatch_mach_send_and_wait_for_reply
5  libdispatch.dylib +0x1b47c      _dispatch_mach_send_with_result_and_wait_for_reply$VARIANT$mp
6  libxpc.dylib +0xe018            _xpc_connection_send_message_with_reply_sync
7  Metallic +0x260d8                  XPCCompilerConnection::BuildRequestInternal(MTLCompilerRequest*, char const*, NSObject objcproto16OS_dispatch_data*, int, bool, void ( block_pointer)(unsigned int, void const*, unsigned lengthy, char const*))
8  Metallic +0x2df54                  ____ZN21XPCCompilerConnection12BuildRequestEP18MTLCompilerRequestPKcPU27objcproto16OS_dispatch_data8NSObjectibU13block_pointerFvjPKvmS3_E_block_invoke
9  libdispatch.dylib +0x647c4      __dispatch_client_callout
10 libdispatch.dylib +0x11a74      __dispatch_lane_barrier_sync_invoke_and_complete
11 Metallic +0x2d2b8                  XPCCompilerConnection::BuildRequest(MTLCompilerRequest*, char const*, NSObject objcproto16OS_dispatch_data*, int, bool, void ( block_pointer)(unsigned int, void const*, unsigned lengthy, char const*))
12 Metallic +0x32f90                  MTLCompilerConnectionManagerPrivate::buildRequest(unsigned int, MTLCompilerRequest*, bool, void ( block_pointer)(MTLCompilerError, NSObject objcproto16OS_dispatch_data*, char const*))
13 Metallic +0x37f8                   -[MTLCompiler compileFunctionRequestInternal:frameworkLinking:linkDataSize:reflectionOnly:completionHandler:]
14 AGXMetalA10 +0x920c             0x2030b120c (0x2030b1038 + 468)
15 AGXMetalA10 +0x7e94             0x2030afe94 (0x2030afb50 + 836)
16 AGXMetalA10 +0x43878            0x2030eb878 (0x2030eb4cc + 940)
17 AGXMetalA10 +0x3b1f8            0x2030e31f8 (0x2030e31c0 + 56)
18 Metallic +0x28f7c                  -[_MTLDevice newComputePipelineStateWithFunction:error:]
19 MyApp calling makeComputePipelineState

LEAVE A REPLY

Please enter your comment!
Please enter your name here