Grfx Drivers and Computer Stability in Unity

Engage with the general protection fault then. Pics of it causing glitches are useless.

Aye, I understand what that error is. I’m asking why you think it’s caused by the same thing as the graphical glitches?

A general protection fault (GPF) in the x86 instruction set architectures (ISAs) is a fault (a type of interrupt) initiated by ISA-defined protection mechanisms in response to an access violation caused by some running code, either in the kernel or a user program. The mechanism is first described in Intel manuals and datasheets for the Intel 80286 CPU, which was introduced in 1983; it is also described in section 9.8.13 in the Intel 80386 programmer’s reference manual from 1986. A general protection fault is implemented as an interrupt (vector number 13 (0Dh)). Some operating systems may also classify some exceptions not related to access violations, such as illegal opcode exceptions, as general protection faults, even though they have nothing to do with memory protection. If a CPU detects a protection violation, it stops executing the code and sends a GPF interrupt. In most cases, the operating system removes the failing process from the execution queue, signals the user, and continues executing other processes. If, however, the operating system fails to catch the general protection fault, i.e. another protection violation occurs before the operating system returns from the previous GPF interrupt, the CPU signals a double fault, stopping the operating system. If yet another failure (triple fault) occurs, the CPU is unable to recover; since 80286, the CPU enters a special halt state called “Shutdown”, which can only be exited through a hardware reset. The IBM PC AT, the first PC-compatible system to contain an 80286, has hardware that detects the Shutdown state and automatically resets the CPU when it occurs. All descendants of the PC AT do the same, so in a PC, a triple fault causes an immediate system reset.

I think it is causing the glitches . The CPU tries to recover. The screen glitches due to CPU not “talking” with the graphics card or probably vice versa. In the case it happens twice before the CPU can recover the program crashes. Further investigation show it to be undocumented functions of ntdll, whatever the hell that is
trying to write to null timeout which is infinity.

Unity or Nvidia is creating a process that shuffles an address space. The driver tries to register a callback and it ain’t there. The CPU throws a protection fault as the address is null. The screen glitches. It tries again and sometimes the address is there and Unity does not crash. If it tries again and the address is still null it throws a general protection fault and Unity crashes. How that is fixed I have no clue yet. I have no idea how to create a system wide API interceptor that monitors every GDI function in existence at any given point. I still think this is something Unity/Nvidia/Windows need to get together and figure out. This is not isolated to my system.

Assuming that is the case I don’t think you can fix it from the using Unity end, aside from by identifying what triggers that particular bug and avoiding it.

However, you said that this is also happening on a Mac?

I have hailed one of the best of the Unity techs over to this thread. This was the gentleman apologized to me publicly for the bad advice the bugs QA team gave me prior. Went and checked how many bug reports I filed and the sorry boilerplate advice given to me over and over. I have just cleaned the computer down to bare bones. I am still getting screen tearing as I write this.

WTH. I just tried uninstalling Unity 5.5.0b8 and it said I would have to close the scene I am working on??? I am on 2019.3.15f1! What’s going on there? That was the first Unity install made on this machine and it was a beta. It does not make any sense to me.

One thing I noticed in your post is that you are running 3840x2160 resolution. Just as a test, try using 1080p and 1440p. Just try those lower resolutions to see if the same problem occurs at lower resolutions. The GTX 1080 is a solid 1440p card for most games, but it is only average at 4K resolution.

Also, if you want to grab a single screenshot from a large video on PC, I recommend using VLC media player. It has a little button that looks like a camera. Click that and it will save a screenshot of the current frame of your video. That way you can upload just a quick screenshot instead of a large video.

I had tried the lower resolutions. The text was huge and scaling was all over the place, Small text in some cases, huge text in Unity. Scaling from System Settings did not do the trick
after an hour of scrolling and scrolling I reverted. I cna take screenshot with the SnipIt tool. Do that all the time. I still think that pic will yield absolutely nothing except standard screen tearing. The Access Violation issue that was resolved prior was on Unity’s end as per the thread linked above. I hailed that tech over to this thread. The folks who did not have the Citrix application which was causing it were told by him that it was Unitys’ fault. it appears to have resurfaced
and WTH with the Unity 5.5.0b8 being my version I am running right now when trying to uninstall all older versions of Unity using the Uninstaller.?? It dialogued that I would have to close the Scene i am working on to uninstall.

Yes, but nowhere near as frequently an a two year old MacBook Pro and on Cyclotronica, not this one I m bitching about, Tail Of The Dragon. Same symptoms on his PC as on mine but perhaps even worse
unable to open without a crash.

One thing does concern me. I had 2019.3.0f15 open to my working scene. In the background I was using the system Uninstall app and uninstalling all older versions of Unity and other useless apps. I was given a warning at choosing uninstall for Unity 5.5.0b8 that I have to close my working scene in 2019.3.0f15 to uninstall. Why is it referencing the first Unity version installed on that machine from 4 years back?

Lower resolution had the same result
 Screen tears and silent crashes to desktop with no crash logs.

This sounds like more of a Windows issue than a Unity specific issue. Sometimes multiple application in Windows will reference some of the shared DLL files. Maybe that is what the Windows uninstaller was concerned about. As a general rule on Windows, don’t install or uninstall anything while you are trying to work. Sometimes there is a file being shared by multiple applications. I even recommend rebooting after any major install or uninstall, just to make sure nothing was stuck. Windows 10 is better about this stuff in general than older versions, but Windows can still be picky at times.

3 Likes

If you can find the crash dump file (Unity - Manual: Log files) and configure VS to use (Unity - Manual: ï»żWindows debugging), then you can open the dmp file, and inspect the stack yourself. Might get some insight in to why the memory address is null.

I would suspect that there is some single problem that is causing both the graphical glitches, and the crash. Trying to access null memory addresses is a virtually unrecoverable error, it is unlikely that the Unity Player makes any attempt to recover from it. There are a billion things that could cause this error. Bad memory, bugs in Windows, drivers, Unity, slightly unstable CPU, corrupt dlls etc.

The SymGetSymFromAddr64 errors are just saying that it is unable to get a human readable name from the stack dump. These aren’t causing any crashes.

2 Likes

It is also worth running a malware scan, just to be sure there is no malware messing up the computer stability. I strongly recommend using MalwareBytes Anti-Malware. That is the best software for detecting and removing malware on Windows PCs.

I do not recommend the paid version with the constant active scanning, though. That gets in the way. I recommend the free mode, which you can run manually. On an important workstation, I would recommend manually scanning at least weekly.

If it detects anything, remove the malware, reboot, and then run the malware scan again. Repeat the process until it stays clean.

1 Like

Another thing I recommend is booting the computer to Memtest86 (with a bootable USB or CD), and then let Memtest86 run memory tests for a few hours. Sometimes Windows will have weird problems that are caused by hardware instabilities. Memtest86 can detect some of those possible hardware issues. It is definitely worth running Memtest86 if you are running into strange instabilities.

3 Likes

Thanks for the advisories folks. I will do it after some well deserved sleep.

1 Like

FGThe one issue here is that most crashes are silent. There is no crash dump file to investigate. Since June 1 I have had hundreds and there are only two crash logs in the temp folder.

Heya, just saw this thread (been really busy last couple of weeks). I assume this is a new issue that started happening recently? As in, it’s different than the one you were facing a few months ago?

Even for silent crashes, you can generate crash dumps using this method: Collecting User-Mode Dumps - Win32 apps | Microsoft Learn

Make sure to use DumpType = 2 (Full). That way it will capture as much information as possible. Once you have a dump (it will probably be pretty large), compress it to a zip file, upload to Google Drive/OneDrive/DropBox/etc and send me the link. I might be able to figure out what’s triggering it.

It’s hard to say whether the graphical glitches are caused by the same issue without having more details.

3 Likes

Been getting one after the other in the motorcycle sim scene. One terrain and a motorcycle and a character with IK. OTOH I have been in the terrain scene and getting work done without too many silent crashes. 100 terrains and tons of trees. I have cleaned everything and reinstalled Unity from scratch, made sure that the GTX 1080 is the card running Unity and everything else uses the onboard Intel chip, opened as Administrator. I am going to get another computer in about two weeks with AMD processor and AMD Radeon RX 5700 XT just to get work done. Will do the above mentioned. I am curious as to why. The build of the sim hasn’t crashed 
yet
but I have not run it alot.

Edit: Never used Registry before. So I navigated to LocalDumps and created a key named Unity.exe and it has a folder looking icon. The Name = (Default), Type=REG_SZ, Data=(value not set). Looking at a similar one for Cinema 4D.exe it has four keys under the main key but they are not folder looking icons but entries one below each other in the folder like I created for Unity.exe. The C4D one has a default like I get initially. I cannot get any more entries inside my created Unity.exe. It will only create subfolders. How do I do this?

Edit #2: I am opening Unity
I left the default Registry Key for Unity.exe there until I get proper procedures to go thru. I did hear hard drive massive clicking which I never heard ever when opening Unity. Editor crashed after about 15 seconds. Second time opening I did not hear the drive