There appears to be a bug in the drivers for certain Intel integrated graphics processors. This bug expresses itself, in the case of Haven, in the client suddenly crashing (often, but not necessarily, as soon as the map renders) and simply closing with no error message or anything. When this happens, Java leaves behind a crash dump with information about the crash (which can sometimes be a bit hard to find, however; please see this thread for more details). This crash dump will begin with the following lines (or, at least, something akin to it):
- Code: Select all
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x2b511880, pid=27160, tid=26160
#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) Client VM (25.60-b23 mixed mode windows-x86 )
# Problematic frame:
# C [ig4icd32.dll+0xa1880]
#
The key piece of information that identifies the crash as an instance of this bug is the "ig4icd32.dll" part, which is Intel's driver file for these particular cards. The "4" is the version number of the GPU and can be different (I've also seen 7, 75 and 9), and the "32" means 32-bit, and can also be "64" for the 64-bit version of the driver.
As far as I can tell, this is indeed a bug in the driver, and therefore not something that I can do a whole lot about. I believe there are some that have managed to find driver updates that have alleviated the problem, but not all seem to be so lucky, so either there may only be some subset of graphics cards to which an updated driver applies, or the update may just be difficult enough to find that not everyone manages to. I can't say I know; if someone who has gotten it to work reads this, feel free to leave a reply telling what you did to fix it. One thing I've seen work for some people is to switch to "the other" Java version -- that is, if you're running 32-bit Java, switch to 64-bit Java, or vice versa. This is because switching between Java versions also switches between the corresponding driver versions, and sometimes it seems one version of the driver lacks the bug that the other has.
It should also be said, though, that it's not wholly proven that it is a pure driver bug. It could possibly be that the client does something weird that happens to work with the vast majority of drivers but which is still wrong enough that Intel's driver can be said to be "justified" in crashing. If that is so, however, then I certainly haven't the faintest clue what it might be that the client does wrong, but if there is evidence to suggest it, please feel free to post about it.
Furthermore, it could also be that the problem is indeed a pure driver bug and that the client isn't in the wrong, but that there could nevertheless exist some workaround that could allow the client to do some weird dance in order to avoid stepping on the driver's sore toe. If this is so, however, then I nevertheless have no lead to identify such a workaround, but again, if there is evidence to suggest that such a workaround exists, please feel free to post about it.