Unity打包崩溃SRP-URP-管线的问题:Shader::SRPBatcherInfoSetup()

URP build always crash when 'Use SPR Batcher' is ON by default - Bug Reports - Niantic SDK for Unity Community

有点类似这个情况,暂时没有解决方法

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/bluejay/bluejay:13/TQ3A.230805.001/10316531:user/release-keys'
Revision: 'MP1.0'
ABI: 'arm64'
Timestamp: 2023-08-29 14:50:18.669731330+0800
Process uptime: 72s
Cmdline: {*** bundle_identifier ***}
pid: 29110, tid: 29296, name: Thread-8  >>> {*** bundle_identifier ***} <<<
uid: 10380
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x0000007170400000
    x0  0000005efe084840  x1  00000071703fffe0  x2  00000000000000e0  x3  0000005efe084980
    x4  0000007170400110  x5  0000005efe084af0  x6  0000000000000000  x7  0000000000000000
    x8  0000000000000000  x9  0000000000000000  x10 0000000000000000  x11 0000000000000000
    x12 0000000000000000  x13 0000000000000000  x14 00000071801877f0  x15 0000000000000023
    x16 00000072adc7acf0  x17 00000075d6bc2f20  x18 00000071abd18000  x19 0000000000000010
    x20 0000007246dd52c0  x21 0000000000000022  x22 00000071703ffe60  x23 0000005efe084840
    x24 00000000000002b0  x25 b40000741a52cc50  x26 00000000000002b0  x27 00000071d0457670
    x28 00000071ac848950  x29 00000000000000a0
    lr  00000072ad146c0c  sp  00000071ac848690  pc  00000075d6bc2ecc  pst 0000000020001000
backtrace:
      #00 pc 000000000004eecc  /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+284) (BuildId: dc4001c2ef2dfc23467040797a96840c)
      #01 pc 000000000193cc08  /data/app/~~tj3lv7b-WWtkzM1sYJ1rVw==/{*** bundle_identifier ***}-EdsH-Q3L1jgEYnGIt8Obpw==/lib/arm64/libunity.so (**GfxDeviceGLES::DrawBuffersBatchMode**(GfxBatchHeader const&)+184) (BuildId: 8ceca445f342b58f)
      #02 pc 0000000001b42070  /data/app/~~tj3lv7b-WWtkzM1sYJ1rVw==/{*** bundle_identifier ***}-EdsH-Q3L1jgEYnGIt8Obpw==/lib/arm64/libunity.so (GfxDeviceWorker::RunCommand(ThreadedStreamBuffer&)+29236) (BuildId: 8ceca445f342b58f)
      #03 pc 0000000001b3add8  /data/app/~~tj3lv7b-WWtkzM1sYJ1rVw==/{*** bundle_identifier ***}-EdsH-Q3L1jgEYnGIt8Obpw==/lib/arm64/libunity.so (GfxDeviceWorker::RunExt(ThreadedStreamBuffer&)+84) (BuildId: 8ceca445f342b58f)
      #04 pc 0000000001b3ad78  /data/app/~~tj3lv7b-WWtkzM1sYJ1rVw==/{*** bundle_identifier ***}-EdsH-Q3L1jgEYnGIt8Obpw==/lib/arm64/libunity.so (GfxDeviceWorker::Run()+140) (BuildId: 8ceca445f342b58f)
      #05 pc 0000000001b3aafc  /data/app/~~tj3lv7b-WWtkzM1sYJ1rVw==/{*** bundle_identifier ***}-EdsH-Q3L1jgEYnGIt8Obpw==/lib/arm64/libunity.so (GfxDeviceWorker::RunGfxDeviceWorker(void*)+4) (BuildId: 8ceca445f342b58f)
      #06 pc 0000000001069f64  /data/app/~~tj3lv7b-WWtkzM1sYJ1rVw==/{*** bundle_identifier ***}-EdsH-Q3L1jgEYnGIt8Obpw==/lib/arm64/libunity.so (Thread::RunThreadWrapper(void*)+1048) (BuildId: 8ceca445f342b58f)
      #07 pc 00000000000c226c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+204) (BuildId: dc4001c2ef2dfc23467040797a96840c)

上面的日志怎么看呢

  • 用android studio 看
  • 个人偶尔能看到日志,但经常被360占用 adb.exe
  • 日志调转来看的,就是从下往上
  • 也就是最下第一行 nativeRender -> 调用的: unityPlayerLoop(),你妹看错,是先render,才执行了unity 的loop 逻辑
  • 然后最上面第N行,就是崩溃的点,甚至还有行号,
  • 但是没有源码,不知道为什么崩溃

- 应该只是调转了一下和OpenGLES3, Vulkun 估计batch 奔溃

- Static Batching一直是勾选的

参考:

Unity引擎源码解析(伪) - 1 引擎初始化_failed to initialize il2cpp-CSDN博客

https://zhuanlan.zhihu.com/p/697337400