Open illwieckz opened 2 years ago
The bug happens in Tess_DrawElements()
from src/engine/renderer/tr_shade.cpp
when calling glMultiDrawElements
which is an OpenGL function. The gleResetUniformBufferCachePointers
is likely an internal macOS symbol.
I assume the crashes occurs in Apple OpenGL implementation, but I don't know if that's a bug on Apple side or if we feed bad data.
I fail to see something wrong there:
Player#5862169 entered the game
]Process 1105 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00007fff4edf8729 GLEngine`gleResetUniformBufferCachePointers + 79
GLEngine`gleResetUniformBufferCachePointers:
-> 0x7fff4edf8729 <+79>: movq (%rdi,%rsi,8), %rdi
0x7fff4edf872d <+83>: movq 0x88(%rdi), %rdi
0x7fff4edf8734 <+90>: shlq $0x4, %rsi
0x7fff4edf8738 <+94>: addq 0x51d0(%r13,%rsi), %rdi
Target 0: (daemon) stopped.
thread backtrace
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x00007fff4edf8729 GLEngine`gleResetUniformBufferCachePointers + 79
frame #1: 0x00007fff4ee53f09 GLEngine`gleSetVPTransformFuncAll + 521
frame #2: 0x000000013364572a
frame #3: 0x00007fff4ecfbd18 GLEngine`gleFlushAtomicFunc + 15
frame #4: 0x00007fff4ed9255b GLEngine`glMultiDrawElements_IMM_GL3Exec + 799
frame #5: 0x0000000100144e4d daemon`Tess_DrawElements() at tr_shade.cpp:277:4 [opt]
frame #6: 0x00000001001495f3 daemon`Render_lightMapping(stage=<unavailable>) at tr_shade.cpp:1095:2 [opt]
frame #7: 0x00000001001454c0 daemon`Tess_StageIteratorGeneric() at tr_shade.cpp:0:11 [opt]
frame #8: 0x000000010014d007 daemon`Tess_End() at tr_shade.cpp:3065:2 [opt]
frame #9: 0x00000001000ef595 daemon`RB_RenderDrawSurfaces(fromSort=<unavailable>, toSort=<unavailable>, drawSurfFilter=<unavailable>) at tr_backend.cpp:883:5 [opt]
frame #10: 0x00000001000ebc2d daemon`RB_RenderView(depthPass=false) at tr_backend.cpp:0:3 [opt]
frame #11: 0x00000001000eb9c3 daemon`DrawViewCommand::ExecuteSelf(this=0x000000010f0942a4) const at tr_backend.cpp:5531:2 [opt]
frame #12: 0x00000001000eed89 daemon`RB_ExecuteRenderCommands(data=0x000000010f0942a4) at tr_backend.cpp:5775:14 [opt]
frame #13: 0x00000001001044c7 daemon`R_SyncRenderThread() at tr_cmds.cpp:209:2 [opt]
frame #14: 0x0000000100118d1c daemon`RE_GenerateTexture(pic=<unavailable>, width=128, height=256) at tr_image.cpp:3018:2 [opt]
frame #15: 0x00000001000545eb daemon`CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&) [inlined] CGameVM::QVMSyscall(this=<unavailable>, data=size=0, x=<unavailable>, y=<unavailable>)::$_37::operator()(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, int, int, int&) const at cl_cgame.cpp:1351:14 [opt]
frame #16: 0x00000001000545db daemon`CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&) [inlined] decltype(func=<unavailable>, tuple=<unavailable>)::$_37>()(std::get<0ul>(std::declval<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&> >()), std::get<1ul>(std::declval<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&> >()), std::get<2ul>(std::declval<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&> >()), std::get<3ul>(std::declval<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&> >()))) Util::apply_impl<CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&)::$_37, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&>, 0ul, 1ul, 2ul, 3ul>(CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&)::$_37&&, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&>&&, Util::seq<0ul, 1ul, 2ul, 3ul>) at Util.h:125 [opt]
frame #17: 0x00000001000545b1 daemon`CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&) [inlined] decltype(func=<unavailable>, tuple=<unavailable>)::$_37>(), std::declval<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&> >(), (Util::gen_seq<std::tuple_size<std::__1::decay<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&> >::type>::value>)())) Util::apply<CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&)::$_37, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&> >(CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&)::$_37&&, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&&, int&&, int&&, int&>&&) at Util.h:130 [opt]
frame #18: 0x00000001000545b1 daemon`CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&) [inlined] void IPC::detail::HandleMsg<CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&)::$_37, IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)69>, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, int, int>, IPC::Reply<int> >(channel=0x0000000100c91028, reader=<unavailable>, func=<unavailable>)0, (unsigned short)69>, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, int, int>, IPC::Reply<int> >, Util::Reader, CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&)::$_37&&) at Channel.h:217 [opt]
frame #19: 0x000000010005453b daemon`CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&) [inlined] void IPC::HandleMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)69>, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, int, int>, IPC::Reply<int> >, CGameVM::QVMSyscall(int, Util::Reader&, IPC::Channel&)::$_37>(channel=0x0000000100c91028, func=<unavailable>)::$_37&&) at Channel.h:241 [opt]
frame #20: 0x00000001000544e5 daemon`CGameVM::QVMSyscall(this=<unavailable>, index=<unavailable>, reader=<unavailable>, channel=<unavailable>) at cl_cgame.cpp:1350 [opt]
frame #21: 0x000000010005406d daemon`CGameVM::Syscall(this=<unavailable>, id=<unavailable>, reader=<unavailable>, channel=<unavailable>) at cl_cgame.cpp:1092:9 [opt]
frame #22: 0x0000000100067564 daemon`void IPC::detail::SendMsg<void VM::VMBase::SendMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(cgClientState_t&)::'lambda'(unsigned int, Util::Reader)&, IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<>, cgClientState_t&>(IPC::Channel&, void VM::VMBase::SendMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(cgClientState_t&)::'lambda'(unsigned int, Util::Reader)&, IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&) [inlined] void VM::VMBase::SendMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(id=69, reader=Reader @ 0x00007ffeefbfe120)::'lambda'(unsigned int, Util::Reader)::operator()(unsigned int, Util::Reader) at VirtualMachine.h:142:4 [opt]
frame #23: 0x00000001000674cc daemon`void IPC::detail::SendMsg<void VM::VMBase::SendMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(cgClientState_t&)::'lambda'(unsigned int, Util::Reader)&, IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<>, cgClientState_t&>(channel=0x0000000100c91028, messageHandler=0x00007ffeefbfe278, (null)=<unavailable>, args=<unavailable>)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(cgClientState_t&)::'lambda'(unsigned int, Util::Reader)&, IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&) at Channel.h:174 [opt]
frame #24: 0x0000000100053fa1 daemon`CGameVM::CGameRocketFrame() [inlined] void IPC::SendMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, void VM::VMBase::SendMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(cgClientState_t&)::'lambda'(unsigned int, Util::Reader), cgClientState_t&>(channel=<unavailable>, messageHandler=0x0000000100c90f90, args=0x0000000000000008)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(cgClientState_t&)::'lambda'(unsigned int, Util::Reader)&&, cgClientState_t&) at Channel.h:234:9 [opt]
frame #25: 0x0000000100053f9c daemon`CGameVM::CGameRocketFrame() [inlined] void VM::VMBase::SendMsg<IPC::SyncMessage<IPC::Message<IPC::Id<(unsigned short)0, (unsigned short)9>, cgClientState_t>, IPC::Reply<> >, cgClientState_t&>(this=0x0000000100c90f90, args=0x0000000000000008) at VirtualMachine.h:140 [opt]
frame #26: 0x0000000100053f6c daemon`CGameVM::CGameRocketFrame(this=0x0000000100c90f90) at cl_cgame.cpp:1079 [opt]
frame #27: 0x0000000100087bf9 daemon`SCR_UpdateScreen() at cl_scrn.cpp:339:3 [opt]
frame #28: 0x000000010007ba4c daemon`CL_Frame(msec=200) at cl_main.cpp:2549:2 [opt]
frame #29: 0x000000010000b7cb daemon`Com_Frame() at common.cpp:1013:2 [opt]
frame #30: 0x00000001001d0e05 daemon`main(argc=<unavailable>, argv=0x00007ffeefbff1c8) at System.cpp:686:5 [opt]
frame #31: 0x00007fff711b43d5 libdyld.dylib`start + 1
frame #32: 0x00007fff711b43d5 libdyld.dylib`start + 1
frame select 5
daemon was compiled with optimization - stepping may behave oddly; variables may not be available.
frame #5: 0x0000000100144e4d daemon`Tess_DrawElements() at tr_shade.cpp:277:4 [opt]
274 {
275 if ( tess.multiDrawPrimitives )
276 {
-> 277 glMultiDrawElements( GL_TRIANGLES, tess.multiDrawCounts, GL_INDEX_TYPE, ( const GLvoid ** ) tess.multiDrawIndexes, tess.multiDrawPrimitives );
^
278
279 backEnd.pc.c_multiDrawElements++;
280 backEnd.pc.c_multiDrawPrimitives += tess.multiDrawPrimitives;
frame variable
(int) i = <variable not available>
frame variable tess.multiDrawIndexes
(glIndex_t *[1000]) tess.multiDrawIndexes = {
[0] = 0x0000000000017850
[1] = 0x0000000000017568
[2] = 0x0000000000016e90
[3] = 0x0000000000017c94
[4] = 0x00000000000182f4
[5] = 0x000000000001815c
[6] = 0x0000000000016458
[7] = 0x0000000000016e48
[8] = 0x0000000000016f80
[9] = 0x00000000000141fc
[10] = 0x000000000000de00
[11] = 0x0000000000014f28
[12] = 0x000000000001899c
[13] = 0x00000000000317e8
[14] = 0x0000000000031740
[15] = 0x0000000000048144
[16] = 0x0000000000047a30
[17] = 0x0000000000052050
[18] = 0x0000000000051108
[19] = 0x00000000000530dc
[20] = 0x00000000000534b4
[21] = 0x00000000000329e8
[22] = 0x0000000000017850
[23] = 0x0000000000030810
[24] = 0x000000000002c268
[25] = 0x00000000000475c8
[26] = 0x0000000000047064
[27] = 0x0000000000046f74
[28] = 0x00000000000542b8
[29] = 0x00000000000461c4
[30] = 0x0000000000046380
[31] = 0x0000000000045fcc
[32] = 0x0000000000045bdc
[33] = 0x0000000000042b70
[34] = 0x0000000000041c88
[35] = 0x0000000000041004
[36] = 0x0000000000047724
[37] = 0x0000000000017b20
[38] = 0x0000000000045f30
[39] = 0x0000000000054084
[40] = 0x0000000000046290
[41] = 0x0000000000017b44
[42] = 0x0000000000045f84
[43] = 0x000000000005409c
[44] = 0x0000000000035d54
[45] = 0x00000000000356ac
[46] = 0x000000000003549c
[47] = 0x0000000000032cc4
[48] = 0x0000000000017b74
[49] = 0x0000000000053bd4
[50] = 0x000000000003cd44
[51] = 0x0000000000017568
[52] = 0x00000000000362dc
[53] = 0x0000000000017808
[54] = 0x0000000000016e90
[55] = 0x0000000000047598
[56] = 0x00000000000464ac
[57] = 0x0000000000044634
[58] = 0x0000000000044280
[59] = 0x0000000000017c94
[60] = 0x00000000000182f4
[61] = 0x000000000001815c
[62] = 0x0000000000053c34
[63] = 0x0000000000047220
[64] = 0x000000000004467c
[65] = 0x000000000004f188
[66] = 0x0000000000045e40
[67] = 0x000000000003675c
[68] = 0x0000000000018234
[69] = 0x0000000000053c04
[70] = 0x0000000000035238
[71] = 0x0000000000045978
[72] = 0x000000000003c618
[73] = 0x000000000003bebc
[74] = 0x00000000000307e0
[75] = 0x000000000002ed10
[76] = 0x00000000000307b0
[77] = 0x000000000002dd20
[78] = 0x0000000000031e60
[79] = 0x000000000002eb90
[80] = 0x000000000003cc78
[81] = 0x000000000003c1b0
[82] = 0x000000000004c308
[83] = 0x0000000000048480
[84] = 0x0000000000051438
[85] = 0x0000000000052e3c
[86] = 0x0000000000054228
[87] = 0x0000000000041f94
[88] = 0x000000000004c5a8
[89] = 0x0000000000048ccc
[90] = 0x0000000000051a50
[91] = 0x0000000000053034
[92] = 0x0000000000016d40
[93] = 0x000000000004260c
[94] = 0x0000000000016da0
[95] = 0x0000000000054054
[96] = 0x0000000000016b60
[97] = 0x0000000000046428
[98] = 0x0000000000044598
[99] = 0x0000000000044238
[100] = 0x00000000000350ac
[101] = 0x0000000000016458
[102] = 0x0000000000053b2c
[103] = 0x000000000003bc7c
[104] = 0x00000000000471d8
[105] = 0x000000000003540c
[106] = 0x000000000004f170
[107] = 0x0000000000016e48
[108] = 0x000000000002cb20
[109] = 0x000000000003bd54
[110] = 0x0000000000045e10
[111] = 0x000000000002c958
[112] = 0x000000000002c4d8
[113] = 0x000000000002c028
[114] = 0x000000000002c6e8
[115] = 0x000000000002cb8c
[116] = 0x000000000002c844
[117] = 0x000000000002c208
[118] = 0x0000000000047610
[119] = 0x000000000002c46c
[120] = 0x0000000000035304
[121] = 0x000000000003555c
[122] = 0x000000000002cc64
[123] = 0x000000000002cec8
[124] = 0x00000000000459a8
[125] = 0x000000000002d264
[126] = 0x000000000002ad68
[127] = 0x0000000000035c88
[128] = 0x0000000000032cac
[129] = 0x000000000002ed70
[130] = 0x000000000004f494
[131] = 0x000000000004f3f8
[132] = 0x000000000002eb24
[133] = 0x000000000002ddf8
[134] = 0x000000000002d0fc
[135] = 0x000000000002d15c
[136] = 0x000000000002dcfc
[137] = 0x00000000000359d0
[138] = 0x00000000000357b4
[139] = 0x000000000004f434
[140] = 0x0000000000016f80
[141] = 0x000000000002ee00
[142] = 0x0000000000053544
[143] = 0x0000000000047004
[144] = 0x000000000003bfd0
[145] = 0x00000000000466c8
[146] = 0x0000000000053b8c
[147] = 0x000000000002dff0
[148] = 0x000000000002eb60
[149] = 0x0000000000053514
[150] = 0x000000000002ea64
[151] = 0x000000000002e86c
[152] = 0x0000000000053664
[153] = 0x000000000002eaac
[154] = 0x000000000005364c
[155] = 0x00000000000401dc
[156] = 0x000000000002a300
[157] = 0x000000000003a050
[158] = 0x0000000000038d90
[159] = 0x000000000004f3b0
[160] = 0x00000000000476ac
[161] = 0x00000000000141fc
[162] = 0x000000000000de00
[163] = 0x0000000000053db4
[164] = 0x00000000000474d8
[165] = 0x0000000000046f08
[166] = 0x0000000000045f00
[167] = 0x0000000000043e18
[168] = 0x00000000000411b4
[169] = 0x0000000000011784
[170] = 0x0000000000032988
[171] = 0x0000000000014f28
[172] = 0x0000000000046f44
[173] = 0x00000000000463f8
[174] = 0x00000000000340a4
[175] = 0x000000000004ed50
[176] = 0x00000000000470d0
[177] = 0x000000000004f380
[178] = 0x000000000004ed20
[179] = 0x000000000004be58
[180] = 0x0000000000047d3c
[181] = 0x00000000000478f8
[182] = 0x00000000000508b0
[183] = 0x0000000000053d84
[184] = 0x0000000000047448
[185] = 0x0000000000046d70
[186] = 0x00000000000540b4
[187] = 0x0000000000043cd4
[188] = 0x0000000000044208
[189] = 0x0000000000041430
[190] = 0x000000000003d6bc
[191] = 0x000000000003f3f0
[192] = 0x00000000000373e0
[193] = 0x000000000003d500
[194] = 0x0000000000039990
[195] = 0x000000000001899c
[196] = 0x0000000000053c94
[197] = 0x0000000000000000
[198] = 0x0000000000000000
[199] = 0x0000000000000000
[200] = 0x0000000000000000
[201] = 0x0000000000000000
[202] = 0x0000000000000000
[203] = 0x0000000000000000
[204] = 0x0000000000000000
[205] = 0x0000000000000000
[206] = 0x0000000000000000
[207] = 0x0000000000000000
[208] = 0x0000000000000000
[209] = 0x0000000000000000
[210] = 0x0000000000000000
[211] = 0x0000000000000000
[212] = 0x0000000000000000
[213] = 0x0000000000000000
[214] = 0x0000000000000000
[215] = 0x0000000000000000
[216] = 0x0000000000000000
[217] = 0x0000000000000000
[218] = 0x0000000000000000
[219] = 0x0000000000000000
[220] = 0x0000000000000000
[221] = 0x0000000000000000
[222] = 0x0000000000000000
[223] = 0x0000000000000000
[224] = 0x0000000000000000
[225] = 0x0000000000000000
[226] = 0x0000000000000000
[227] = 0x0000000000000000
[228] = 0x0000000000000000
[229] = 0x0000000000000000
[230] = 0x0000000000000000
[231] = 0x0000000000000000
[232] = 0x0000000000000000
[233] = 0x0000000000000000
[234] = 0x0000000000000000
[235] = 0x0000000000000000
[236] = 0x0000000000000000
[237] = 0x0000000000000000
[238] = 0x0000000000000000
[239] = 0x0000000000000000
[240] = 0x0000000000000000
[241] = 0x0000000000000000
[242] = 0x0000000000000000
[243] = 0x0000000000000000
[244] = 0x0000000000000000
[245] = 0x0000000000000000
[246] = 0x0000000000000000
[247] = 0x0000000000000000
[248] = 0x0000000000000000
[249] = 0x0000000000000000
[250] = 0x0000000000000000
[251] = 0x0000000000000000
[252] = 0x0000000000000000
[253] = 0x0000000000000000
[254] = 0x0000000000000000
[255] = 0x0000000000000000
...
}
*** Some of your variables have more members than the debugger will show by default. To show all of them, you can either use the --show-all-children option to frame variable or raise the limit by changing the target.max-children-count setting.
frame variable tess.multiDrawCounts
(int [1000]) tess.multiDrawCounts = {
[0] = 273
[1] = 186
[2] = 60
[3] = 306
[4] = 426
[5] = 102
[6] = 630
[7] = 18
[8] = 378
[9] = 843
[10] = 6399
[11] = 768
[12] = 816
[13] = 6
[14] = 18
[15] = 183
[16] = 57
[17] = 828
[18] = 198
[19] = 78
[20] = 18
[21] = 99
[22] = 180
[23] = 54
[24] = 123
[25] = 12
[26] = 27
[27] = 36
[28] = 15
[29] = 51
[30] = 30
[31] = 15
[32] = 81
[33] = 759
[34] = 195
[35] = 78
[36] = 60
[37] = 9
[38] = 21
[39] = 6
[40] = 30
[41] = 12
[42] = 18
[43] = 6
[44] = 354
[45] = 66
[46] = 48
[47] = 6
[48] = 72
[49] = 12
[50] = 12
[51] = 168
[52] = 30
[53] = 18
[54] = 60
[55] = 12
[56] = 15
[57] = 18
[58] = 15
[59] = 306
[60] = 426
[61] = 54
[62] = 24
[63] = 18
[64] = 12
[65] = 6
[66] = 12
[67] = 90
[68] = 48
[69] = 12
[70] = 51
[71] = 12
[72] = 84
[73] = 69
[74] = 12
[75] = 24
[76] = 12
[77] = 54
[78] = 24
[79] = 96
[80] = 51
[81] = 282
[82] = 168
[83] = 531
[84] = 390
[85] = 126
[86] = 36
[87] = 414
[88] = 108
[89] = 198
[90] = 384
[91] = 33
[92] = 24
[93] = 345
[94] = 36
[95] = 12
[96] = 120
[97] = 15
[98] = 39
[99] = 18
[100] = 99
[101] = 450
[102] = 24
[103] = 54
[104] = 18
[105] = 36
[106] = 6
[107] = 18
[108] = 27
[109] = 90
[110] = 12
[111] = 114
[112] = 132
[113] = 120
[114] = 87
[115] = 54
[116] = 69
[117] = 24
[118] = 6
[119] = 27
[120] = 66
[121] = 84
[122] = 153
[123] = 141
[124] = 24
[125] = 642
[126] = 1176
[127] = 51
[128] = 6
[129] = 36
[130] = 6
[131] = 15
[132] = 15
[133] = 78
[134] = 24
[135] = 66
[136] = 9
[137] = 174
[138] = 135
[139] = 24
[140] = 378
[141] = 1644
[142] = 6
[143] = 24
[144] = 120
[145] = 42
[146] = 12
[147] = 543
[148] = 12
[149] = 12
[150] = 18
[151] = 102
[152] = 6
[153] = 24
[154] = 6
[155] = 888
[156] = 348
[157] = 822
[158] = 768
[159] = 18
[160] = 30
[161] = 843
[162] = 3681
[163] = 12
[164] = 48
[165] = 15
[166] = 12
[167] = 6
[168] = 24
[169] = 2718
[170] = 24
[171] = 768
[172] = 12
[173] = 6
[174] = 282
[175] = 12
[176] = 18
[177] = 12
[178] = 12
[179] = 84
[180] = 258
[181] = 78
[182] = 534
[183] = 12
[184] = 24
[185] = 102
[186] = 93
[187] = 81
[188] = 12
[189] = 465
[190] = 1266
[191] = 879
[192] = 1164
[193] = 111
[194] = 15
[195] = 816
[196] = 48
[197] = 0
[198] = 0
[199] = 0
[200] = 0
[201] = 0
[202] = 0
[203] = 0
[204] = 0
[205] = 0
[206] = 0
[207] = 0
[208] = 0
[209] = 0
[210] = 0
[211] = 0
[212] = 0
[213] = 0
[214] = 0
[215] = 0
[216] = 0
[217] = 0
[218] = 0
[219] = 0
[220] = 0
[221] = 0
[222] = 0
[223] = 0
[224] = 0
[225] = 0
[226] = 0
[227] = 0
[228] = 0
[229] = 0
[230] = 0
[231] = 0
[232] = 0
[233] = 0
[234] = 0
[235] = 0
[236] = 0
[237] = 0
[238] = 0
[239] = 0
[240] = 0
[241] = 0
[242] = 0
[243] = 0
[244] = 0
[245] = 0
[246] = 0
[247] = 0
[248] = 0
[249] = 0
[250] = 0
[251] = 0
[252] = 0
[253] = 0
[254] = 0
[255] = 0
...
}
frame variable tess.multiDrawPrimitives
(int) tess.multiDrawPrimitives = 13
I reproduce this on Mojave virtual machine with
./daemon -set r_glAllowSoftware 1 +devmap plat23
As far as I know, on hardware OpenGL implementation the engine does not crash.
The main menu renders properly, but the game crashes when loading map: