Constant 3070 driver crashes when going to exclusive full screen and back with a Unity made game

I am developing a game with Unity and my GeForce 3070 drivers crashes often when running the game and switching between exclusive full screen and desktop (or when switching from non-exclusive full-screen to exclusive full screen), either by changing in-game graphics settings or by using Alt+Tab. Sometimes, it makes Unity Player crash for various reasons related to graphics driver failing and sometimes, it produces blue screen. Below is more debug information on one such blue screen.

This was happening with NVidia Studio Driver I had earlier and kept happening after I upgraded to the latest Game Ready Driver (497.09).

Any ideas what to do? I have a dump file of over 3 GB - should I upload it somewhere?

By opening the generated blue screen dump with windb, I got this information:


  •                                                                         *
    
  •                    Bugcheck Analysis                                    *
    
  •                                                                         *
    

VIDEO_MEMORY_MANAGEMENT_INTERNAL (10e)
The video memory manager encountered a condition that it can’t recover from. By crashing,
the video memory manager is attempting to get enough information into the minidump such that
somebody can pinpoint what lead to this condition.
Arguments:
Arg1: 0000000000000033, The subtype of the bugcheck:
Arg2: ffff840e550eeb30
Arg3: 0000000000000000
Arg4: 0000000000000000

Debugging Details:

KEY_VALUES_STRING: 1

Key  : Analysis.CPU.Sec
Value: 3

Key  : Analysis.DebugAnalysisProvider.CPP
Value: Create: 8007007e on TURPO

Key  : Analysis.DebugData
Value: CreateObject

Key  : Analysis.DebugModel
Value: CreateObject

Key  : Analysis.Elapsed.Sec
Value: 21

Key  : Analysis.Memory.CommitPeak.Mb
Value: 73

Key  : Analysis.System
Value: CreateObject

BUGCHECK_CODE: 10e

BUGCHECK_P1: 33

BUGCHECK_P2: ffff840e550eeb30

BUGCHECK_P3: 0

BUGCHECK_P4: 0

BLACKBOXBSD: 1 (!blackboxbsd)

BLACKBOXNTFS: 1 (!blackboxntfs)

BLACKBOXPNP: 1 (!blackboxpnp)

BLACKBOXWINLOGON: 1

PROCESS_NAME: dwm.exe

STACK_TEXT:
ffff978753defe68 fffff8023a1b3ad0 : 000000000000010e 0000000000000033 ffff840e550eeb30 0000000000000000 : nt!KeBugCheckEx
ffff978753defe70 fffff80227a4d30d : 0000000000000000 ffff840e550eec30 ffffc88ee8a03000 0000000000000001 : watchdog!WdLogEvent5_WdCriticalError+0xe0
ffff978753defeb0 fffff802279c0eca : ffff840e550eeb30 0000000000000000 ffff840e66e0ca50 0000000000000001 : dxgmms2!VIDMM_PROCESS_ADAPTER_INFO::~VIDMM_PROCESS_ADAPTER_INFO+0x33179
ffff978753defef0 fffff80227a1a14d : ffff840e550eeb30 0000000000000000 ffff840e66e0ca50 ffffc88ee830b010 : dxgmms2!VIDMM_PROCESS_ADAPTER_INFO::scalar deleting destructor'+0xe ffff978753deff20 fffff80227a1a81d : 0000000000000000 ffff840e66e0ca50 ffff840e550eeb30 ffffc88eecddb080 : dxgmms2!VIDMM_PROCESS::DestroyAdapterInfo+0xe5 ffff978753deff50 fffff802279c0eae : ffff840e54dd4870 ffff978753df0109 ffffc88ee830b010 000000004b677844 : dxgmms2!VIDMM_PROCESS::CloseAdapter+0xb9 ffff978753df0010 fffff80239f66749 : 0000000000000030 0000000000000799 0000000000000002 ffffc88edf06a1c0 : dxgmms2!VidMmCloseAdapter+0x1e ffff978753df0040 fffff80239f13c6f : ffffc88ecf010100 fffff8022a8892b2 ffffc88ecf010340 00000000000000ff : dxgkrnl!DXGPROCESS_ADAPTER_INFO::CloseVidMmAdapter+0x2d ffff978753df0070 fffff80239ee4c9d : ffff840e54dd4870 ffff840e00000002 ffff840e54dd4870 ffffc88ee830b010 : dxgkrnl!DXGPROCESS::DestroyAdapterInfo+0x143 ffff978753df0170 fffff80239ee30f1 : ffffc88ee3c63000 fffff80200000001 ffffc88ee3c63000 fffff80200000001 : dxgkrnl!DXGPROCESS::CloseAdapter+0xf9 ffff978753df0200 fffff80239f14785 : ffff840e50fbba40 ffff978753df0350 00000000000001c2 ffff840e50fbb910 : dxgkrnl!DXGADAPTER::DestroyHandle+0x11d ffff978753df0250 fffff80239f15709 : ffff840e50fbb910 ffffc88ee4c45500 ffff840e50fbb910 ffff978753df06c9 : dxgkrnl!DXGPROCESS::Destroy+0x341 ffff978753df04c0 fffff80239e067b1 : 0000000000000000 ffffc88eeae64950 0000000000000000 fffff8022de7a298 : dxgkrnl!DXGPROCESS::DestroyDxgProcess+0x105 ffff978753df0610 fffff8022ac02a4f : 0000000000000000 ffffc88ed6efa250 ffffc88ee631b080 ffffc88eeae665b0 : dxgkrnl!DxgkProcessNotify+0x1a1 ffff978753df0660 fffff8022ac1d664 : ffffc88ee631b000 ffffc88ee631b080 0000000000000000 0000000000000000 : nt!PspCallProcessNotifyRoutines+0x213 ffff978753df0730 fffff8022acb0be2 : ffffc88eecddb4b8 0000000000000000 ffff978753df0920 0000000000000000 : nt!PspExitProcess+0x70 ffff978753df0760 fffff8022acf5538 : 00000000e0464645 0000000000000001 ffff978753df0990 000000a95858c000 : nt!PspExitThread+0x5b2 ffff978753df0860 fffff8022a80ef67 : ffffb0d85fff0101 0000000000000000 ffffc88eeb6ce510 0000000000000000 : nt!KiSchedulerApcTerminate+0x38 ffff978753df08a0 fffff8022a9fb840 : 0000029fb1918be0 ffff978753df0950 000000a958e7fbf8 ffffc88e00000000 : nt!KiDeliverApc+0x487 ffff978753df0950 fffff8022aa08d5f : 0000000000000000 0000000000000000 0000000000000000 ffffc88eeb6ce510 : nt!KiInitiateUserApc+0x70 ffff978753df0a90 00007ffd9c4707c4 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiSystemServiceExit+0x9f 000000a958e7fba8 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x00007ffd9c4707c4

SYMBOL_NAME: dxgmms2!VIDMM_PROCESS_ADAPTER_INFO::~VIDMM_PROCESS_ADAPTER_INFO+33179

MODULE_NAME: dxgmms2

IMAGE_NAME: dxgmms2.sys

IMAGE_VERSION: 10.0.19041.1320

STACK_COMMAND: .thread ; .cxr ; kb

BUCKET_ID_FUNC_OFFSET: 33179

FAILURE_BUCKET_ID: 0x10e_33_dxgmms2!VIDMM_PROCESS_ADAPTER_INFO::_VIDMM_PROCESS_ADAPTER_INFO

OS_VERSION: 10.0.19041.1

BUILDLAB_STR: vb_release

OSPLATFORM_TYPE: x64

OSNAME: Windows 10

FAILURE_ID_HASH: {590e82e4-fa32-3e14-0943-e6b01c6637c4}

Followup: MachineOwner

Hello @user99041 and welcome to the NVIDIA developer forums!

Does this happen only with your Unity project or does it also happen with other games or other Unity projects?

The difficulty in this scenario is that according to the dump you shared this is a random video memory corruption caused by the DirectX memory manager. That can have a lot of different reasons. From actual driver issues to power supply limitations.

I suppose you already did some search for VIDEO_MEMORY_MANAGEMENT_INTERNAL online and found the most common suggestions what try to fix this?

If not I am happy to list some that come to mind (preferably in that order):

  • Make sure you have the latest BIOS flashed to your motherboard
  • Make sure you have any chip-set updates for your Motherboard installed
  • Make sure you have the latest Windows Updates installed
  • Perform a clean NVIDIA driver installation. Usually it is enough to chose that option from within the driver installer as part of the custom installation process.
    • To make really sure you can first use a tool like DDU (Display Driver Uninstall) to remove all NVIDIA driver files, reboot and reinstall your preferred driver
  • Perform a clean install of Unity without any extensions, plug-ins or add-ons.
  • If all of that is done, first try a new project and work with it for some time to check stability
  • Then load your original project and test stability

You can of course already check after intermediate steps if things improved, but I would recommend to go t least as far as NVIDIA driver re-installation.

If all of the above does not help, the next checks should be to verify the hardware.

  • Is your power supply enough for the GPU? Unity will use a lot of resources and tax all your HW with more complex projects.
  • Is your overall setup (including CPU and RAM) up to recommended requirements of Unity?
  • Are your system temperatures ok?

I would normally suggest for you to also check in the GeForce forums or the Unity forums, but with this particular error signature you might receive much the same answer in all of those.

I hope this will help you address your crashes!