EDIT: Solution has been found. After much trial and error, the game no longer crashes during our loading screen, even with steam running. The issue with the graphics driver DOES NOT OCCUR if the graphics API being used is OpenGL. Adding that as an graphics API option to the build, and adding this launch parameter: -force-glcore32
fixed the issue (though for this player’s driver, it still didn’t like some of the Standard Assets shaders for post-processing).
Hi. I’ve made a StandaloneWindows64 build of the game. It works completely fine in the editor, and the windows build works with 99% of players, however a few are reporting it crashes when switching scenes.
Attached is the Player.log and a crash dump. Windows 10 Pro 64-bit
The application just silently crashes/quits when going from my Splashscreen scene (which is a loading screen) to my main menu scene. It may happen during of an LoadSceneAsync operation or during an UnloadSceneAsync, but I’m not completely sure. I’ve added some more Debug statements in a newer build to find out. Scene switching code below:
I noticed the VRAM for this player is very low - 480mb. Could it be unable to allocate enough memory? This could explain why for most players it works, but for a few it doesn’t.
GPU running out of memory shouldn’t be an issue, Windows will use system RAM to page VRAM contents on demand. However, if the person playing your game has a 14 year old GPU, it’s likely they don’t have a lot of RAM too which makes it plausible that they run out of memory.
Another possibility is the fact that the GPU only supports D3D11 feature level 10.0. Does your game work on your machine if you run it with “-force-feature-level-10-0” command line argument?
Thanks for the suggestions. For crash dump, do you mean stuff located at: %TMP%\CompanyName\ProductName\Crashes ? I’ll try to get that from the player.
I tried adding the “-force-feature-level-10-0” command line argument, and it still worked for me. Player.log file confirming forcing of D3D11 to 10.0 below:
Mono path[0] = 'C:/Builds/steamworks_sdk/tools/ContentBuilder/content/KaijuWars_Windows/KaijuWars_Data/Managed'
Mono config path = 'C:/Builds/steamworks_sdk/tools/ContentBuilder/content/KaijuWars_Windows/MonoBleedingEdge/etc'
Initialize engine version: 2020.1.0b7 (6cfebb967dcd)
[Subsystems] Discovering subsystems at path C:/Builds/steamworks_sdk/tools/ContentBuilder/content/KaijuWars_Windows/KaijuWars_Data/UnitySubsystems
GfxDevice: creating device client; threaded=1
d3d11: QueryInterface(IDXGIFactory5) failed (80004002).
Direct3D:
Version: Direct3D 11.0 [level 10.0]
Renderer: NVIDIA GeForce GTX 1070 (ID=0x1b81)
Vendor:
VRAM: 8046 MB
Driver: 27.21.14.6109
VirtualTexturing requires compute shaders
Begin MonoManager ReloadAssembly
- Completed reload, in 0.186 seconds
D3D11 device created for Microsoft Media Foundation video decoding.
Well, I’ve got either good or bad news, depending on how you look at it.
It seems the crash is happening inside the Nvidia graphics driver. The graphics driver in use is 6 years old and unfortunately it’s the latest driver available for that 14 year old GPU. Furthermore, the crash is happening during steam overlay rendering so it’s not even the game that is triggering it (at least that’s what it looks like to me).
I would advice the player to try disabling steam overlay for your game and see if it makes the crash go away.
It’s also possible that the driver has issues with DXGI flip model swapchain (which was introduced in Windows 8) as games didn’t really start using it until 2017 (which was after this driver shipped). They can force Unity to fall back to Windows 7 style swapchain using the “-force-d3d11-bltblt-mode” command line argument, but it should only be done as the last resort as it has severe performance and input latency penalties. I’ve seen really old drivers not liking flip model swapchains in the past, but it’s still a very rare issue.
Thanks for the excellent suggestions. We tried having the player run the game without steam running at all (running the .exe. directly). Attached is the crash dump without steam. Strangely, the game gets past the loading screen about HALF the time.
We also tried running it separately with and without the following launch options:
-force-d3d11-bltblt-mode
-force-feature-level-10-0
But the game still crashed.
We agree this seems to have something to do with the graphics driver, but it’s strange it only happens SOMETIMES and not EVERY TIME.
Thanks for the suggestions - looks like I submitted the wrong crash dump where steam was running.
However after much trial and error, we did find a solution - even WITH steam running. The issue with the graphics driver DOES NOT OCCUR if the graphics API being used is OpenGL. Adding that as an graphics API option to the build, and adding this launch parameter: -force-glcore32
fixed the issue (though for this player’s driver, it still didn’t like some of the Standard Assets shaders for post-processing).