renaudbedard / fez-1.12-issues

A public repository for FEZ 1.12 testers to log issues
9 stars 0 forks source link

Instant quit to desktop when entering a door #144

Closed Nicholas-Steel closed 7 years ago

Nicholas-Steel commented 7 years ago

The game quit to desktop without any error messages or crash messages appearing as soon as I entered a door. Starting the game again and re-attempting to enter the door worked fine though. This isn't the most helpful report of course.

Windows 10 x64 1607 Intel i7 920 @2.66ghz 8GB DDR3 RAM Geforce 760 4GB video card (372.54 driver) ASUS P6T Motherboard

flibitijibibo commented 7 years ago

You can grab debug logs from here:

http://pcgamingwiki.com/wiki/Fez#Save_game_data_location

Something to try is singlethreaded mode, which you can access in the game options.

renaudbedard commented 7 years ago

I'm interested in fixing the bugs that occur in non-singlethreaded mode (this is likely one of those), so please don't enable singlethreaded mode unless you want to stop worrying about crashes and just enjoy the game.

Nicholas-Steel commented 7 years ago

(00:03:43.066) [FNA] INFORMATION : Controller 0: Generic DirectInput Controller (00:03:43.818) [Version] INFORMATION : 1.12, Build Date : 2016-08-20 14:50:53 (00:03:43.992) [FNA] INFORMATION : IGLDevice: OpenGLDevice (00:03:43.994) [FNA] INFORMATION : OpenGL Device: GeForce GTX 760/PCIe/SSE2 (00:03:43.995) [FNA] INFORMATION : OpenGL Driver: 4.5.0 NVIDIA 372.54 (00:03:43.996) [FNA] INFORMATION : OpenGL Vendor: NVIDIA Corporation (00:03:43.997) [FNA] INFORMATION : MojoShader Profile: glsl120 (00:03:44.004) [FNA] INFORMATION : Using EXT_swap_control_tear VSync! (00:03:44.028) [Instancing] INFORMATION : Hardware instancing is enabled (00:03:44.049) [FNA] INFORMATION : Using EXT_swap_control_tear VSync! (00:03:44.051) [SettingsManager] INFORMATION : Screen set to {{Width:1920 Height:1080 Format:Color}} (00:03:44.052) [SettingsManager] INFORMATION : Screen mode is : Fullscreen (00:03:44.054) [SettingsManager] INFORMATION : Backbuffer is 1920x1080 (00:03:44.055) [SettingsManager] INFORMATION : VSync is on (00:03:44.057) [SettingsManager] INFORMATION : Multisample count is 0 (00:03:44.151) [Threading] INFORMATION : Multithreading is enabled (00:03:44.735) [Intro] INFORMATION : First draw done! (00:03:45.528) [StaticPreloader] INFORMATION : SharedContentManager preloaded. (00:03:45.685) [StaticPreloader] INFORMATION : Music library initialized. (00:03:45.698) [StaticPreloader] INFORMATION : Volume levels loaded. (00:03:45.767) [StaticPreloader] INFORMATION : Animations filled. (00:03:45.769) [StaticPreloader] INFORMATION : Text scroll pre-initialized. (00:03:45.771) [StaticPreloader] INFORMATION : World map pre-initialized. (00:03:45.773) [StaticPreloader] INFORMATION : Pause menu pre-initialized. (00:03:46.147) [Intro] INFORMATION : Preloading complete. (00:05:19.478) [Intro] INFORMATION : Level load complete. (00:05:26.299) [Intro] INFORMATION : Intro is done and game is go! (01:04:56.157) [Unhandled Exception] ERROR : System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) at System.Collections.Generic.List1.RemoveAt(Int32 index) at Microsoft.Xna.Framework.Game.SortingFilteringCollection1.ProcessRemoveJournal() at Microsoft.Xna.Framework.Game.SortingFilteringCollection1.ForEachFilteredItem[TUserData](Action2 action, TUserData userData) at FezGame.Fez.Update(GameTime gameTime) at Microsoft.Xna.Framework.Game.Tick() at Microsoft.Xna.Framework.SDL2_FNAPlatform.RunLoop(Game game) at Microsoft.Xna.Framework.Game.Run() at FezGame.Program.MainInternal() at Common.Logger.Try(Action action) (01:04:56.251) [FEZ] INFORMATION : Exiting.

renaudbedard commented 7 years ago

Thanks for the log! It's not as explicit as I'd hoped but it's a clue, I'll dig into it when I have time.

renaudbedard commented 7 years ago

One additional thing that might help : which area was this? Which level were you in and where were you going, if you can recall?

Nicholas-Steel commented 7 years ago

I had cleared out all the graveyard areas and the crash happened when I entered the Hut that leads back to the woods/forest area. To clarify, it crashed as soon as I attempted to enter the Hut from the graveyard.

renaudbedard commented 7 years ago

I just pushed a Windows build to the "experimental" branch on Steam, password is "therebedragons".

If you want to test the tentative fixes I put in place for this problem, please get that build and let me know how it runs. I'll play-test it a bunch and make sure nothing blows up, and if I'm happy with it I'll merge.

jrugia commented 7 years ago

I'm experiencing the same issue on Linux, happened while I was still in start village (happened more or less after 20mins of gameplay). Singlethreaded mode was disabled.

My system:

Linux Mint 18 Intel N2840 CPU (with Intel HD graphics) 8GB Ram

I'm not at my pc right so unable to post debug logs before the next 10 hours.

flibitijibibo commented 7 years ago

The 'experimental' branch now has Linux/Mac versions of the tentative fix.

jrugia commented 7 years ago

[ [2016-08-23] Debug Log.txt [2016-08-23] Debug Log #2.txt [2016-08-23] Debug Log #3.txt

](url)

Uploaded the Debug Logs from last night's crash. Hopefully it helps.

renaudbedard commented 7 years ago

That is helpful, thanks @Armored87! It's not the same exact issue as the original post but it's related. I'll take a look when I can and let you know when there's a build that addresses it.

flibitijibibo commented 7 years ago

Linux/Mac's experimental builds have been updated. Should fix Armored's crash, and includes additional work towards getting the original crash fixed.

renaudbedard commented 7 years ago

~~Fixes are now merged in the default branch on Steam for all platforms -- please use this one, "experimental" will grow out of date. Seems stable now, let us know if you hit anything!~~

renaudbedard commented 7 years ago

I reverted all threading changes from the default branch because other people were reporting game freezes... I'll leave all this in the experimental branch for now until we know for sure that it's stable.

flibitijibibo commented 7 years ago

Mac/Linux experimental has an update that should fix it For Good(TM). Windows to follow tonight.

renaudbedard commented 7 years ago

Windows "experimental" build is up as well.

Nicholas-Steel commented 7 years ago

It "seems" to be working fine now, or at least I haven't encountered any problems. I now have all 64 cubes.

Edit: And now the game is completed 100%. Edit 2: This basically means I won't be around to beta test anymore. Thanks for looking in to the issues as I encountered them. I think that the PC v1.12 is probably the best version of the game, the v1.12 update is significantly better than the initial PC release.

renaudbedard commented 7 years ago

Cheers, thanks for the big help @Nicholas-Steel :)

charlieman commented 7 years ago

Screenshot: https://twitter.com/charlieman/status/769365628016795648 It exited to desktop the first time I tried to enter the door (no going back and forth between the rooms) even after restarting the game.

(22:33:21.113) [FNA] INFORMATION : Controller 0: XInput Controller
(22:33:21.293) [Version] INFORMATION : 1.12, Build Date : 2016-08-25 20:25:11
(22:33:21.405) [FNA] INFORMATION : IGLDevice: OpenGLDevice
(22:33:21.405) [FNA] INFORMATION : OpenGL Device: GeForce GTX 960/PCIe/SSE2
(22:33:21.405) [FNA] INFORMATION : OpenGL Driver: 4.5.0 NVIDIA 368.81
(22:33:21.405) [FNA] INFORMATION : OpenGL Vendor: NVIDIA Corporation
(22:33:21.406) [FNA] INFORMATION : MojoShader Profile: glsl120
(22:33:21.411) [FNA] INFORMATION : Using EXT_swap_control_tear VSync!
(22:33:21.427) [Instancing] INFORMATION : Hardware instancing is disabled
(22:33:21.439) [SettingsManager] INFORMATION : Screen set to {{Width:1600 Height:900 Format:Color}}
(22:33:21.439) [SettingsManager] INFORMATION : Screen mode is : Fullscreen
(22:33:21.440) [SettingsManager] INFORMATION : Backbuffer is 1600x900
(22:33:21.440) [SettingsManager] INFORMATION : VSync is off
(22:33:21.440) [SettingsManager] INFORMATION : Multisample count is 0
(22:33:21.506) [Threading] INFORMATION : Multithreading is enabled
(22:33:21.934) [Intro] INFORMATION : First draw done!
(22:33:22.719) [StaticPreloader] INFORMATION : SharedContentManager preloaded.
(22:33:22.833) [StaticPreloader] INFORMATION : Music library initialized.
(22:33:22.841) [StaticPreloader] INFORMATION : Volume levels loaded.
(22:33:22.895) [StaticPreloader] INFORMATION : Animations filled.
(22:33:22.895) [StaticPreloader] INFORMATION : Text scroll pre-initialized.
(22:33:22.901) [StaticPreloader] INFORMATION : World map pre-initialized.
(22:33:22.901) [StaticPreloader] INFORMATION : Pause menu pre-initialized.
(22:33:23.147) [Intro] INFORMATION : Preloading complete.
(22:33:41.025) [Intro] INFORMATION : Level load complete.
(22:33:46.668) [Intro] INFORMATION : Intro is done and game is go!
(22:33:53.236) [Unhandled Exception] ERROR : System.InvalidOperationException: The vertex stride is larger than the vertex buffer.
   at Microsoft.Xna.Framework.Graphics.VertexBuffer.SetDataInternal[T](Int32 offsetInBytes, T[] data, Int32 startIndex, Int32 elementCount, Int32 vertexStride, SetDataOptions options)
   at Microsoft.Xna.Framework.Graphics.VertexBuffer.SetData[T](T[] data)
   at FezEngine.Structure.Geometry.ShaderInstancedIndexedPrimitives`2.<UpdateBuffers>b__32_2()
   at FezEngine.Tools.DrawActionScheduler.Process()
   at FezGame.Fez.Draw(GameTime gameTime)
   at Microsoft.Xna.Framework.Game.Tick()
   at Microsoft.Xna.Framework.SDL2_FNAPlatform.RunLoop(Game game)
   at Microsoft.Xna.Framework.Game.Run()
   at FezGame.Program.MainInternal()
   at Common.Logger.Try(Action action)
(22:33:53.246) [Unhandled Exception] ERROR : System.NullReferenceException: Object reference not set to an instance of an object.
   at FezEngine.Components.PlaneParticleSystem.Clear()
   at FezGame.Components.PlaneParticleSystems.<Initialize>b__9_0()
   at System.Action.Invoke()
   at FezEngine.Services.LevelManager.OnLevelChanged()
   at FezGame.Services.GameLevelManager.ChangeLevel(String levelName)
   at FezGame.Components.Actions.EnterDoor.DoLoad(Boolean dummy)
   at FezEngine.Tools.Worker`1.Act()
   at FezEngine.Tools.PersistentThread.DoActualWork()
   at Common.Logger.Try(Action action)
(22:33:53.321) [FEZ] INFORMATION : Exiting.
flibitijibibo commented 7 years ago

Can you upload a copy of the savefile? That looks like it could be easily reproducible. Turns out that isn't actually a crash in the thread location, just in the vertex buffer allocation.

charlieman commented 7 years ago

After that I switched singlethreaded on, entered the room, switched it back off and got this error trying to leave the room:

(22:44:37.188) [FNA] INFORMATION : Controller 0: XInput Controller
(22:44:37.371) [Version] INFORMATION : 1.12, Build Date : 2016-08-25 20:25:11
(22:44:37.521) [FNA] INFORMATION : IGLDevice: OpenGLDevice
(22:44:37.521) [FNA] INFORMATION : OpenGL Device: GeForce GTX 960/PCIe/SSE2
(22:44:37.521) [FNA] INFORMATION : OpenGL Driver: 4.5.0 NVIDIA 368.81
(22:44:37.521) [FNA] INFORMATION : OpenGL Vendor: NVIDIA Corporation
(22:44:37.521) [FNA] INFORMATION : MojoShader Profile: glsl120
(22:44:37.527) [FNA] INFORMATION : Using EXT_swap_control_tear VSync!
(22:44:37.544) [Instancing] INFORMATION : Hardware instancing is disabled
(22:44:37.556) [SettingsManager] INFORMATION : Screen set to {{Width:1600 Height:900 Format:Color}}
(22:44:37.556) [SettingsManager] INFORMATION : Screen mode is : Fullscreen
(22:44:37.557) [SettingsManager] INFORMATION : Backbuffer is 1600x900
(22:44:37.557) [SettingsManager] INFORMATION : VSync is off
(22:44:37.557) [SettingsManager] INFORMATION : Multisample count is 0
(22:44:37.622) [Threading] INFORMATION : Multithreading is enabled
(22:44:38.074) [Intro] INFORMATION : First draw done!
(22:44:38.839) [StaticPreloader] INFORMATION : SharedContentManager preloaded.
(22:44:38.954) [StaticPreloader] INFORMATION : Music library initialized.
(22:44:38.962) [StaticPreloader] INFORMATION : Volume levels loaded.
(22:44:39.017) [StaticPreloader] INFORMATION : Animations filled.
(22:44:39.017) [StaticPreloader] INFORMATION : Text scroll pre-initialized.
(22:44:39.018) [StaticPreloader] INFORMATION : World map pre-initialized.
(22:44:39.018) [StaticPreloader] INFORMATION : Pause menu pre-initialized.
(22:44:39.262) [Intro] INFORMATION : Preloading complete.
(22:44:52.368) [Intro] INFORMATION : Level load complete.
(22:44:57.003) [Intro] INFORMATION : Intro is done and game is go!
(22:44:59.978) [Unhandled Exception] ERROR : System.NullReferenceException: Object reference not set to an instance of an object.
   at FezEngine.Structure.Geometry.ShaderInstancedIndexedPrimitives`2.<UpdateBuffers>b__32_2()
   at FezEngine.Tools.DrawActionScheduler.Process()
   at FezGame.Fez.Draw(GameTime gameTime)
   at Microsoft.Xna.Framework.Game.Tick()
   at Microsoft.Xna.Framework.SDL2_FNAPlatform.RunLoop(Game game)
   at Microsoft.Xna.Framework.Game.Run()
   at FezGame.Program.MainInternal()
   at Common.Logger.Try(Action action)
(22:45:00.061) [FEZ] INFORMATION : Exiting.
charlieman commented 7 years ago

Here's a save file for the second exception: SaveSlot0

I'll try to get it back to the first exception and upload that too. Edit: Here it is: SaveSlot0

flibitijibibo commented 7 years ago

Strange, I can't get this to happen locally. That said, I'm doing this on Linux with Mono, and I get the feeling that this is a Windows .NET issue. Renaud will have to debug this locally.

flibitijibibo commented 7 years ago

Actually, wait a minute... why is hardware instancing turned off? Can you turn it back on and try again?

charlieman commented 7 years ago

No idea why it was off. Turned it on and now it doesn't crash anymore with singlethreaded off.

flibitijibibo commented 7 years ago

Cool, that should also give you the tiniest of performance boosts too. Though I wonder why the vertex buffer was too small... and why it didn't crash before, that rendering path is the same as in 1.11, I think. (Good thing 99% of hardware supports instancing these days)

If anyone's reading this wondering why we're debugging a possible GL crash in here, good news: I found an actual thread crash while trying to repro, so the next update will have another fix for you all to try :P

renaudbedard commented 7 years ago

I was able to reproduce the 1st exception so I'm debugging that!

renaudbedard commented 7 years ago

Fixed both issues, it's live on Steam in the experimental branch, but they were only happening in the non-hardware instancing code path. It's good to keep it stable though, so thanks for reporting :)

renaudbedard commented 7 years ago

Closing this for now, I think we're good on the experimental branch for these issues!