StarCoreSE / SCModRepository

Starcore's Mod Repo
https://www.starcore.tv/
GNU General Public License v3.0
2 stars 17 forks source link

"new" driver crash #1473

Closed InvalidArgument3 closed 2 weeks ago

InvalidArgument3 commented 1 month ago

potentially decals or a red herring? got it after sitting in a world with AI fighting then crashed when I tabbed back in

2024-08-04 22:48:05.608 - Thread:  18 ->  Exception occurred: System.NullReferenceException: Object reference not set to an instance of an object.
   at VRageRender.MyScreenDecals.GetDecalCameraSqDistance(MyScreenDecal decal)
   at VRageRender.MyScreenDecals.CanBePlaced(MyScreenDecal decal)
   at VRageRender.MyScreenDecals.AddDecal(UInt32 id, UInt32[] parentIDs, MyDecalTopoData& topoData, MyDecalFlags flags, String sourceTarget, String material, Int32 matIndex, Single renderSqDistance, Boolean isTrail, Int32 timeUntilLive)
   at VRageRender.MyRender11.ProcessMessageInternal(MyRenderMessageBase message, Int32 frameId)
   at VRageRender.MyRender11.ProcessMessage(MyRenderMessageBase message, Int32 frameId)
   at VRageRender.MyRender11.ProcessRenderFrame(MyUpdateFrame frame, Boolean draw)
   at VRageRender.MyRender11.ProcessMessageQueue(Boolean draw)
   at VRageRender.MyRender11.FullDraw(Boolean draw)
   at VRageRender.MyRender11.Draw(Boolean draw)
   at VRageRender.MyDX11Render.Draw(Boolean draw)
   at VRageRender.ExternalApp.MyRenderThread.Draw()
   at VRageRender.ExternalApp.MyRenderThread.RenderFrame(Boolean async)
   at VRageRender.ExternalApp.MyRenderThread.RenderCallback(Boolean async)
   at VRageRender.ExternalApp.MyRenderThread.RenderThreadStart(Object param)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart(Object obj)
2024-08-04 22:48:05.608 - Thread:  18 ->  Showing message
2024-08-04 22:48:05.608 - Thread:  18 ->  MyInitializer.OnCrash
2024-08-04 22:48:05.608 - Thread:  18 ->  var exception = System.NullReferenceException: Object reference not set to an instance of an object.
   at VRageRender.MyScreenDecals.GetDecalCameraSqDistance(MyScreenDecal decal)
   at VRageRender.MyScreenDecals.CanBePlaced(MyScreenDecal decal)
   at VRageRender.MyScreenDecals.AddDecal(UInt32 id, UInt32[] parentIDs, MyDecalTopoData& topoData, MyDecalFlags flags, String sourceTarget, String material, Int32 matIndex, Single renderSqDistance, Boolean isTrail, Int32 timeUntilLive)
   at VRageRender.MyRender11.ProcessMessageInternal(MyRenderMessageBase message, Int32 frameId)
   at VRageRender.MyRender11.ProcessMessage(MyRenderMessageBase message, Int32 frameId)
   at VRageRender.MyRender11.ProcessRenderFrame(MyUpdateFrame frame, Boolean draw)
   at VRageRender.MyRender11.ProcessMessageQueue(Boolean draw)
   at VRageRender.MyRender11.FullDraw(Boolean draw)
   at VRageRender.MyRender11.Draw(Boolean draw)
   at VRageRender.MyDX11Render.Draw(Boolean draw)
   at VRageRender.ExternalApp.MyRenderThread.Draw()
   at VRageRender.ExternalApp.MyRenderThread.RenderFrame(Boolean async)
   at VRageRender.ExternalApp.MyRenderThread.RenderCallback(Boolean async)
   at VRageRender.ExternalApp.MyRenderThread.RenderThreadStart(Object param)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart(Object obj)
InvalidArgument3 commented 1 month ago

found to be related to how weaponcore places decals but it triggers a keen thing that really should have a null check. This log points to REE_Bullet_Decal_Metal, but only REE_Bullet_Decal exists; weird, but probably unrelated

2024-08-05 21:58:01.935 - Thread:  18 ->  Crash detected on AddDecal(), here's the arguments it got called with:
    id=63010; parentIDs=4294967295
    flags=IgnoreOffScreenDeletion
    world pos from parent: ERROR: actor not found! id=4294967295!
    topoData:
      MatrixBinding.Pos={X:7.652577 Y:-2.421796 Z:-3.499104}; MatrixCurrent.Pos={X:7.652577 Y:-2.421796 Z:-3.499104}; WorldPosition=X:NaN Y:NaN Z:NaN
      boneIndices=0, 0, 0, 0; boneWeights={X:0 Y:0 Z:0 W:0}
    sourceTarget=REE_Bullet_Decal_Metal; material=REE_Bullet_Decal_Metal; matIndex=1
    renderSqDistance=1000000; isTrail=False; timeUntilLive=8967
    found stored trace data for this render message id:
   at Digi.Plugins.Patch_MyRenderProxy.Patch_CreateDecal.Postfix(UInt32& __result)
   at VRageRender.MyRenderProxy.CreateDecal_Patch1(UInt32[] parentIds, MyDecalTopoData& data, MyDecalFlags flags, String sourceTarget, String material, Int32 matIndex, Single renderDistance, Boolean isTrail, Int32 TimeUntilLive)
   at Sandbox.Game.MyDecals.VRage.Game.ModAPI.Interfaces.IMyDecalHandler.AddDecal(MyDecalRenderInfo& data, List`1 ids)
   at Sandbox.Game.Entities.Cube.MySlimBlock.VRage.Game.ModAPI.Interfaces.IMyDecalProxy.AddDecals(MyHitInfo& hitInfo, MyStringHash source, Vector3 forwardDirection, Object customdata, IMyDecalHandler decalHandler, MyStringHash physicalMaterial, MyStringHash voxelMaterial, Boolean isTrail, MyDecalFlags flags, Int32 aliveUntil, List`1 decals)
   at Sandbox.Game.MyDecals.HandleAddDecal(IMyEntity entity, MyHitInfo hitInfo, Vector3 forwardDirection, MyStringHash physicalMaterial, MyStringHash source, Object customdata, Single damage, MyStringHash voxelMaterial, Boolean isTrail, MyDecalFlags flags, Int32 aliveUntil, List`1 decals)
   at CoreSystems.Support.RunAv.End()
   at CoreSystems.Session.Simulate()
   at Sandbox.Game.World.MySession.UpdateComponents()
   at Sandbox.Game.World.MySession.Update(MyTimeSpan updateTime)
   at Sandbox.MySandboxGame.Update()
   at Sandbox.Engine.Platform.Game.UpdateInternal()
   at Sandbox.Engine.Platform.Game.RunSingleFrame()
   at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass11_0.<Run>b__0()
   at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
   at Sandbox.Engine.Platform.Game.RunLoop()
   at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
   at SpaceEngineers.MyProgram.Main(String[] args)
   at avaness.SpaceEngineersLauncher.Program.StartSpaceEngineers(String[] args)
   at avaness.SpaceEngineersLauncher.Program.Main(String[] args)

image

CommodoreChet commented 1 month ago

Strip Impact Decals for now?

InvalidArgument3 commented 3 weeks ago

Strip Impact Decals for now?

yeah just snipped the line in our WC fork to avoid it