Hello,
I’m part of a small studio and we are working on a game. It’s called Dead Age 2 and is already available on Steam in Early Access stage. The game runs fine on most hardware you encounter these days. However we found that customers with integrated graphic cards experience crashes. These seem to be engine level crashes that force the application to stop and create an error log and a memory dump. I’ve attached 2 logs to the post as examples. Those came from customers. The error occurring is always some form of:
UnityPlayer.dll caused an Access Violation
with the additional info:
Write to location 00000000 caused an access violation.
and then we have the stack trace like this for example:
Stack Trace of Crashed Thread 6652:
0x79FB3534 (UnityPlayer) DynamicHeapAllocator::Allocate
0x79FAC1E9 (UnityPlayer) DualThreadAllocator<DynamicHeapAllocator>::Allocate
0x79F9B8D5 (UnityPlayer) MemoryManager::Allocate
0x79F9B86D (UnityPlayer) MemoryManager::Allocate
0x79F9B86D (UnityPlayer) MemoryManager::Allocate
0x79F9FBFE (UnityPlayer) MemoryManager::Reallocate
0x79FAA3B2 (UnityPlayer) realloc_internal
0x7A61A5A6 (UnityPlayer) dynamic_array_detail::dynamic_array_data::resize_buffer
0x79AD6582 (UnityPlayer) dynamic_array<signed char,0>::resize_buffer_nocheck
0x7AE198DB (UnityPlayer) Shader::Transfer<StreamedBinaryRead>
0x7AE22712 (UnityPlayer) Shader::VirtualRedirectTransfer
0x7A7CCB45 (UnityPlayer) SerializedFile::ReadObject
0x7A7C063C (UnityPlayer) PersistentManager::ReadAndActivateObjectThreaded
0x7A7C0955 (UnityPlayer) PersistentManager::ReadObject
0x79FDC32C (UnityPlayer) ReadObjectFromPersistentManager
0x79ABE783 (UnityPlayer) PPtr<AnimationClip>::operator AnimationClip *
0x7A5487BD (UnityPlayer) Material::BuildShaderKeywordSet
0x7A5483B0 (UnityPlayer) Material::AwakeFromLoad
0x7A7D35C4 (UnityPlayer) AwakeFromLoadQueue::PersistentManagerAwakeFromLoad
0x7A7BE4AA (UnityPlayer) PersistentManager::IntegrateAllThreadedObjects
0x7A7BE875 (UnityPlayer) PersistentManager::LoadAndIntegrateAllPreallocatedObjects
0x7A7C09A4 (UnityPlayer) PersistentManager::ReadObject
0x79FDC32C (UnityPlayer) ReadObjectFromPersistentManager
0x79FF5651 (UnityPlayer) BaseRenderer::FlattenSharedMaterialData<0>
0x7A35C5C6 (UnityPlayer) Renderer::AddAsRenderNode
0x7A3DD314 (UnityPlayer) SkinnedMeshRenderer::AddAsRenderNode
0x7A032EA6 (UnityPlayer) PrepareRenderNodesOnMainThreadDeprecated
0x7A031838 (UnityPlayer) EndRenderQueueExtraction
0x7A031C4C (UnityPlayer) ExtractSceneRenderNodeQueue
0x7A05B838 (UnityPlayer) CullResults::GetOrCreateSharedRendererScene
0x7A0424DB (UnityPlayer) Camera::CustomRender
0x7A04B1F3 (UnityPlayer) RenderManager::RenderCameras
0x7A4F8D1F (UnityPlayer) PlayerRender
0x7A4F5D7D (UnityPlayer) `InitPlayerLoopCallbacks'::`2'::PostLateUpdateFinishFrameRenderingRegistrator::Forward
0x7A4E807E (UnityPlayer) ExecutePlayerLoop
0x7A4EACEC (UnityPlayer) PlayerLoop
0x79F4B398 (UnityPlayer) PerformMainLoop
0x79F4A038 (UnityPlayer) MainMessageLoop
0x79F4DD20 (UnityPlayer) UnityMainImpl
0x79F50FD5 (UnityPlayer) UnityMain
0x007B1015 (DeadAge2) wWinMain
0x007B11D9 (DeadAge2) __scrt_common_main_seh
0x767CFA29 (KERNEL32) BaseThreadInitThunk
0x777F75F4 (ntdll) RtlGetAppContainerNamedObjectPath
0x777F75C4 (ntdll) RtlGetAppContainerNamedObjectPath
The stack trace varies from log to log and the reports of the customers indicate that the game either crashes after a short time just looking at the first scene in the game (a main menu with a more passive but actual 3D scene in the background) or sometimes after a few minutes after switching to the next scene which is the tutorial that takes place in a different 3D scene. Even with graphic settings on simple what mostly reflects Unity’s quality setting preset for “simple” it happens.
Here is an example of the hardware the one of the customers with crash uses: https://store.hp.com/us/en/pdp/hp-laptop-15t-value-5jr88av-1
I’ve searched a bit about these type of error and the results are not that clear as an access violation itself can have various reasons. But as a side note I found out that integrated graphic cards don’t seem to have their own dedicated graphics memory and instead have to share the system memory with the CPU?! That could at least explain a little bit what’s going on here but of course the big question is, if the problem could be solved from our side because we just did something wrong with our implementation or the way we handle our assets / scenes / textures (maybe it’s just too much stuff for these cards and the game has yet to get more optimized) or if there is an underlying problem with Unity’s graphic memory management on integrated cards that cause these problems. So since I don’t really have a clue what to do about it right now I wanted to ask if maybe someone here has an idea what this could be about. You can check out the attached documents if that helps.
Best regards
6839387–795968–error 2.txt (98.1 KB)
6839387–795971–error.txt (98.2 KB)