MakeComputePipelineState вызывает зависание приложения на старых устройствахIOS

Программируем под IOS
Ответить
Anonymous
 MakeComputePipelineState вызывает зависание приложения на старых устройствах

Сообщение Anonymous »

Я столкнулся со странной ошибкой, из-за которой мое приложение зависает при вызове makeComputePipelineState со «сложной» металлической функцией.

Под сложностью я имел в виду наличие немного больше логики в функции, большинство функций работают нормально, но у меня есть 2 металлические функции с этой проблемой.
Чем старше устройство, тем дольше оно висит. На iPad 6-м он зависает до сбоя, а иногда и на iPad 7-м. Все новое имеет очень короткое зависание или вообще не зависает.

Более того, это происходит только в первый раз, если ему удается пройти через зависание, не будучи убитым iOS, последующие вызовы будут работать отлично.
Происходит во всех версиях iOS.
Вот трассировка стека для зависания:
CrashReporter Key: --
Hardware Model: iPad7,5
Process: MyApp
Identifier: com.MyApp
Version: 2.42.4
Role: Foreground
OS Version: iOS 16.1.1

App Hang: The app was terminated while 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 Metal +0x260d8 XPCCompilerConnection::BuildRequestInternal(MTLCompilerRequest*, char const*, NSObject objcproto16OS_dispatch_data*, int, bool, void ( block_pointer)(unsigned int, void const*, unsigned long, char const*))
8 Metal +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 Metal +0x2d2b8 XPCCompilerConnection::BuildRequest(MTLCompilerRequest*, char const*, NSObject objcproto16OS_dispatch_data*, int, bool, void ( block_pointer)(unsigned int, void const*, unsigned long, char const*))
12 Metal +0x32f90 MTLCompilerConnectionManagerPrivate::buildRequest(unsigned int, MTLCompilerRequest*, bool, void ( block_pointer)(MTLCompilerError, NSObject objcproto16OS_dispatch_data*, char const*))
13 Metal +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 Metal +0x28f7c -[_MTLDevice newComputePipelineStateWithFunction:error:]
19 MyApp calling makeComputePipelineState


Подробнее здесь: https://stackoverflow.com/questions/791 ... er-devices
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»