Hello, I’m seeing a crash in windows builds. Looking at the crash dump and running analyze in WinDbg I can see the error is related to ShaderLab. The game uses Better Lit Shaders, and for a reason or another (still investigating, quite probably my fault) the initial variants before stripping is really huge, in the hundreds of millions.
After stripping, it gets to about 50k variants per shader.
Here is the crash dmp and the analyze result:
CONTEXT: (.ecxr)
eax=00000000 ebx=00002600 ecx=003ffff0 edx=5370e33c esi=00000000 edi=5370e140
eip=52493206 esp=1684f870 ebp=1684f8cc iopl=0 nv up ei pl nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
UnityPlayer!DynamicHeapAllocator::CreateTLSFBlock+0x91 [inlined in UnityPlayer!DynamicHeapAllocator::Allocate+0x226]:
52493206 0f1101 movups xmmword ptr [ecx],xmm0 ds:002b:003ffff0=????????????????????????????????
Resetting default scope
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 52493206 (UnityPlayer!DynamicHeapAllocator::CreateTLSFBlock+0x00000091)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000001
Parameter[1]: 003ffff0
Attempt to write to address 003ffff0
PROCESS_NAME: TimeRaiders.exe
WRITE_ADDRESS: 003ffff0
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.
EXCEPTION_CODE_STR: c0000005
EXCEPTION_PARAMETER1: 00000001
EXCEPTION_PARAMETER2: 003ffff0
STACK_TEXT:
1684f8cc 524976a5 00002596 00000010 00000010 UnityPlayer!DynamicHeapAllocator::Allocate+0x226
1684f8e8 5249354d 00002596 00000010 00002596 UnityPlayer!DualThreadAllocator<DynamicHeapAllocator>::Allocate+0x75
1684f904 52496f31 00002596 00000001 0000002b UnityPlayer!MemoryManager::Allocate+0xed
1684f924 526d6492 00002596 00000001 0000002b UnityPlayer!malloc_internal+0x21
1684f950 5247fd82 00002596 00000001 00000001 UnityPlayer!dynamic_array_detail::dynamic_array_data::resize_buffer+0x72
1684f968 526b25ce 00002596 00000001 168cf8d0 UnityPlayer!dynamic_array<unsigned char,0>::resize_buffer_nocheck+0x12
1684f984 5268fa88 168cf8e8 e9e887c0 00006172 UnityPlayer!ShaderLab::SubProgram::SubProgram+0x3e
1684fa08 5268f8d9 168cf8d0 1f958290 30223cc0 UnityPlayer!ShaderLab::SubProgram::CreateFromSerializedSubProgram+0x2f8
1684fa98 5268f3be 168cf8d0 1f958290 30223cc0 UnityPlayer!ShaderLab::SubProgram::CreateFromSerializedSubProgram+0x149
1684faec 5268f27c 1f958280 1684fb28 00000002 UnityPlayer!ShaderLab::Program::CreateFromSerializedProgram+0xce
1684fb50 5269016f 1f956d90 1f941740 0000002b UnityPlayer!ShaderLab::Pass::CreateFromSerializedPass+0x28c
1684fb98 5268f73e 1f956960 1f941740 1f941740 UnityPlayer!ShaderLab::SubShader::CreateFromSerializedSubShaderThreaded+0x20f
1684fc00 52dbc09f 00000000 1f94179c 00000000 UnityPlayer!ShaderLab::IntShader::CreateFromSerializedShaderThreaded+0x2ce
1684fc40 52dbba47 04f02730 527c0628 1684fd0c UnityPlayer!Shader::CreateFromParsedFormThreaded+0x16f
1684fc48 527c0628 1684fd0c 00000001 04f02730 UnityPlayer!Shader::AwakeFromLoadThreaded+0x57
1684fc6c 527bf741 0000027a 00000002 00e2a840 UnityPlayer!PersistentManager::ReadAndActivateObjectThreaded+0x168
1684fcc8 52667195 00001ea8 000002f1 1684fd0c UnityPlayer!PersistentManager::LoadObjectsThreaded+0x1a1
1684fdac 52667b25 53716df0 0599d858 0599d7c0 UnityPlayer!LoadSceneOperation::Perform+0x195
1684fdcc 52667de5 07022b20 0599d7c0 53706370 UnityPlayer!PreloadManager::ProcessSingleOperation+0x115
1684fe08 526ee215 0599d7c0 0599d7c0 07022b20 UnityPlayer!PreloadManager::Run+0x135
1684fe4c 76d3fa29 0599d7c0 76d3fa10 1684feb8 UnityPlayer!Thread::RunThreadWrapper+0xb5
1684fe5c 776d76b4 0599d7c0 fd89ef27 00000000 kernel32!BaseThreadInitThunk+0x19
1684feb8 776d7684 ffffffff 776f741f 00000000 ntdll!__RtlUserThreadStart+0x2f
1684fec8 00000000 526ee160 0599d7c0 00000000 ntdll!_RtlUserThreadStart+0x1b
FAULTING_SOURCE_LINE: C:\buildslave\unity\build\Runtime\Allocator\DynamicHeapAllocator.cpp
FAULTING_SOURCE_FILE: C:\buildslave\unity\build\Runtime\Allocator\DynamicHeapAllocator.cpp
FAULTING_SOURCE_LINE_NUMBER: 492
FAULTING_SOURCE_CODE:
No source found for 'C:\buildslave\unity\build\Runtime\Allocator\DynamicHeapAllocator.cpp'
SYMBOL_NAME: UnityPlayer!DynamicHeapAllocator::Allocate+226
MODULE_NAME: UnityPlayer
IMAGE_NAME: UnityPlayer.dll
STACK_COMMAND: ~71s; .ecxr ; kb
FAILURE_BUCKET_ID: INVALID_POINTER_WRITE_c0000005_UnityPlayer.dll!DynamicHeapAllocator::Allocate
OS_VERSION: 10.0.19041.1
BUILDLAB_STR: vb_release
OSPLATFORM_TYPE: x86
OSNAME: Windows 10
IMAGE_VERSION: 2021.2.11.3247
FAILURE_ID_HASH: {73089ea4-bb8e-04c8-cb99-76dd5aeb2467}
Followup: MachineOwner
---------
7915378–1009780–crash.zip (33.2 KB)