Я столкнулся со странной ошибкой, из-за которой мое приложение зависает при вызове 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
MakeComputePipelineState вызывает зависание приложения на старых устройствах ⇐ IOS
Программируем под IOS
1731727788
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79194469/makecomputepipelinestate-causes-app-hang-on-older-devices[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия