10-07-2019, 03:55 PM
hi all;
When the game starts with a scene containing any Obi Fluid particle emitter, we get a 100% crash.
We have the following call stack:
liquidmaze`Oni::TaskQueue::NextTask:
0x1016592dc <+0>: stp x22, x21, [sp, #-0x30]!
0x1016592e0 <+4>: stp x20, x19, [sp, #0x10]
0x1016592e4 <+8>: stp x29, x30, [sp, #0x20]
0x1016592e8 <+12>: add x29, sp, #0x20 ; =0x20
0x1016592ec <+16>: mov x19, x0
0x1016592f0 <+20>: orr w8, wzr, #0x1
0x1016592f4 <+24>: ldaxrb w9, [x19]
0x1016592f8 <+28>: stxrb w10, w8, [x19]
0x1016592fc <+32>: and w9, w9, #0x1
0x101659300 <+36>: cmp w10, #0x0 ; =0x0
0x101659304 <+40>: ccmp w9, #0x0, #0x0, eq
0x101659308 <+44>: b.ne 0x1016592f4 ; <+24>
0x10165930c <+48>: ldr x20, [x19, #0x8]
0x101659310 <+52>: ldr x22, [x20, #0x10]
0x101659314 <+56>: cbz x22, 0x1016593d4 ; <+248>
0x101659318 <+60>: ldp x9, x8, [x22]
0x10165931c <+64>: cbz x8, 0x101659334 ; <+88>
0x101659320 <+68>: add x10, x8, #0x8 ; =0x8
0x101659324 <+72>: ldxr x11, [x10]
0x101659328 <+76>: add x11, x11, #0x1 ; =0x1
0x10165932c <+80>: stxr w12, x11, [x10]
0x101659330 <+84>: cbnz w12, 0x101659324 ; <+72>
0x101659334 <+88>: ldr x21, [x1, #0x8]
0x101659338 <+92>: stp x9, x8, [x1]
0x10165933c <+96>: cbz x21, 0x101659370 ; <+148>
0x101659340 <+100>: add x8, x21, #0x8 ; =0x8
0x101659344 <+104>: ldaxr x9, [x8]
0x101659348 <+108>: sub x10, x9, #0x1 ; =0x1
0x10165934c <+112>: stlxr w11, x10, [x8]
0x101659350 <+116>: cbnz w11, 0x101659344 ; <+104>
0x101659354 <+120>: cbnz x9, 0x101659370 ; <+148>
0x101659358 <+124>: ldr x8, [x21]
0x10165935c <+128>: ldr x8, [x8, #0x10]
0x101659360 <+132>: mov x0, x21
0x101659364 <+136>: blr x8
0x101659368 <+140>: mov x0, x21
0x10165936c <+144>: bl 0x1023a58e8 ; symbol stub for: std::__1::__shared_weak_count::__release_weak()
0x101659370 <+148>: ldr x0, [x22]
0x101659374 <+152>: ldr x8, [x0]
-> 0x101659378 <+156>: ldr x8, [x8, #0x10]
0x10165937c <+160>: blr x8
0x101659380 <+164>: cbz w0, 0x1016593cc ; <+240>
0x101659384 <+168>: str x22, [x19, #0x8]
0x101659388 <+172>: cbz x20, 0x1016593cc ; <+240>
0x10165938c <+176>: ldr x21, [x20, #0x8]
0x101659390 <+180>: cbz x21, 0x1016593c4 ; <+232>
0x101659394 <+184>: add x8, x21, #0x8 ; =0x8
0x101659398 <+188>: ldaxr x9, [x8]
0x10165939c <+192>: sub x10, x9, #0x1 ; =0x1
0x1016593a0 <+196>: stlxr w11, x10, [x8]
0x1016593a4 <+200>: cbnz w11, 0x101659398 ; <+188>
0x1016593a8 <+204>: cbnz x9, 0x1016593c4 ; <+232>
0x1016593ac <+208>: ldr x8, [x21]
0x1016593b0 <+212>: ldr x8, [x8, #0x10]
0x1016593b4 <+216>: mov x0, x21
0x1016593b8 <+220>: blr x8
0x1016593bc <+224>: mov x0, x21
0x1016593c0 <+228>: bl 0x1023a58e8 ; symbol stub for: std::__1::__shared_weak_count::__release_weak()
0x1016593c4 <+232>: mov x0, x20
0x1016593c8 <+236>: bl 0x100ca8410 ; ::operator delete() at MemoryManager.cpp:261
0x1016593cc <+240>: orr w0, wzr, #0x1
0x1016593d0 <+244>: b 0x1016593d8 ; <+252>
0x1016593d4 <+248>: mov w0, #0x0
0x1016593d8 <+252>: stlrb wzr, [x19]
0x1016593dc <+256>: ldp x29, x30, [sp, #0x20]
0x1016593e0 <+260>: ldp x20, x19, [sp, #0x10]
0x1016593e4 <+264>: ldp x22, x21, [sp], #0x30
0x1016593e8 <+268>: ret
0x1016593ec <+272>: stlrb wzr, [x19]
0x1016593f0 <+276>: bl 0x1023a53fc ; symbol stub for: _Unwind_Resume
0x1016593f4 <+280>: brk #0x1
Of course it works on all other platforms, iOS, PC, etc... Just iPhone XS crashes everytime. Now our publisher has blocked the project, and there is no way for us to release it without a fix.
Does anyone have the same issue?
When the game starts with a scene containing any Obi Fluid particle emitter, we get a 100% crash.
We have the following call stack:
liquidmaze`Oni::TaskQueue::NextTask:
0x1016592dc <+0>: stp x22, x21, [sp, #-0x30]!
0x1016592e0 <+4>: stp x20, x19, [sp, #0x10]
0x1016592e4 <+8>: stp x29, x30, [sp, #0x20]
0x1016592e8 <+12>: add x29, sp, #0x20 ; =0x20
0x1016592ec <+16>: mov x19, x0
0x1016592f0 <+20>: orr w8, wzr, #0x1
0x1016592f4 <+24>: ldaxrb w9, [x19]
0x1016592f8 <+28>: stxrb w10, w8, [x19]
0x1016592fc <+32>: and w9, w9, #0x1
0x101659300 <+36>: cmp w10, #0x0 ; =0x0
0x101659304 <+40>: ccmp w9, #0x0, #0x0, eq
0x101659308 <+44>: b.ne 0x1016592f4 ; <+24>
0x10165930c <+48>: ldr x20, [x19, #0x8]
0x101659310 <+52>: ldr x22, [x20, #0x10]
0x101659314 <+56>: cbz x22, 0x1016593d4 ; <+248>
0x101659318 <+60>: ldp x9, x8, [x22]
0x10165931c <+64>: cbz x8, 0x101659334 ; <+88>
0x101659320 <+68>: add x10, x8, #0x8 ; =0x8
0x101659324 <+72>: ldxr x11, [x10]
0x101659328 <+76>: add x11, x11, #0x1 ; =0x1
0x10165932c <+80>: stxr w12, x11, [x10]
0x101659330 <+84>: cbnz w12, 0x101659324 ; <+72>
0x101659334 <+88>: ldr x21, [x1, #0x8]
0x101659338 <+92>: stp x9, x8, [x1]
0x10165933c <+96>: cbz x21, 0x101659370 ; <+148>
0x101659340 <+100>: add x8, x21, #0x8 ; =0x8
0x101659344 <+104>: ldaxr x9, [x8]
0x101659348 <+108>: sub x10, x9, #0x1 ; =0x1
0x10165934c <+112>: stlxr w11, x10, [x8]
0x101659350 <+116>: cbnz w11, 0x101659344 ; <+104>
0x101659354 <+120>: cbnz x9, 0x101659370 ; <+148>
0x101659358 <+124>: ldr x8, [x21]
0x10165935c <+128>: ldr x8, [x8, #0x10]
0x101659360 <+132>: mov x0, x21
0x101659364 <+136>: blr x8
0x101659368 <+140>: mov x0, x21
0x10165936c <+144>: bl 0x1023a58e8 ; symbol stub for: std::__1::__shared_weak_count::__release_weak()
0x101659370 <+148>: ldr x0, [x22]
0x101659374 <+152>: ldr x8, [x0]
-> 0x101659378 <+156>: ldr x8, [x8, #0x10]
0x10165937c <+160>: blr x8
0x101659380 <+164>: cbz w0, 0x1016593cc ; <+240>
0x101659384 <+168>: str x22, [x19, #0x8]
0x101659388 <+172>: cbz x20, 0x1016593cc ; <+240>
0x10165938c <+176>: ldr x21, [x20, #0x8]
0x101659390 <+180>: cbz x21, 0x1016593c4 ; <+232>
0x101659394 <+184>: add x8, x21, #0x8 ; =0x8
0x101659398 <+188>: ldaxr x9, [x8]
0x10165939c <+192>: sub x10, x9, #0x1 ; =0x1
0x1016593a0 <+196>: stlxr w11, x10, [x8]
0x1016593a4 <+200>: cbnz w11, 0x101659398 ; <+188>
0x1016593a8 <+204>: cbnz x9, 0x1016593c4 ; <+232>
0x1016593ac <+208>: ldr x8, [x21]
0x1016593b0 <+212>: ldr x8, [x8, #0x10]
0x1016593b4 <+216>: mov x0, x21
0x1016593b8 <+220>: blr x8
0x1016593bc <+224>: mov x0, x21
0x1016593c0 <+228>: bl 0x1023a58e8 ; symbol stub for: std::__1::__shared_weak_count::__release_weak()
0x1016593c4 <+232>: mov x0, x20
0x1016593c8 <+236>: bl 0x100ca8410 ; ::operator delete() at MemoryManager.cpp:261
0x1016593cc <+240>: orr w0, wzr, #0x1
0x1016593d0 <+244>: b 0x1016593d8 ; <+252>
0x1016593d4 <+248>: mov w0, #0x0
0x1016593d8 <+252>: stlrb wzr, [x19]
0x1016593dc <+256>: ldp x29, x30, [sp, #0x20]
0x1016593e0 <+260>: ldp x20, x19, [sp, #0x10]
0x1016593e4 <+264>: ldp x22, x21, [sp], #0x30
0x1016593e8 <+268>: ret
0x1016593ec <+272>: stlrb wzr, [x19]
0x1016593f0 <+276>: bl 0x1023a53fc ; symbol stub for: _Unwind_Resume
0x1016593f4 <+280>: brk #0x1
Of course it works on all other platforms, iOS, PC, etc... Just iPhone XS crashes everytime. Now our publisher has blocked the project, and there is no way for us to release it without a fix.
Does anyone have the same issue?