lwjgl icon indicating copy to clipboard operation
lwjgl copied to clipboard

some minecraft installs not working under windows 10

Open loordgek opened this issue 9 years ago • 154 comments

http://www.minecraftforge.net/forum/index.php/topic,32656.0.html

loordgek avatar Aug 04 '15 07:08 loordgek

There's nowhere near enough information to debug this...

philipwhiuk avatar Aug 05 '15 10:08 philipwhiuk

Case 1

https://www.reddit.com/r/feedthebeast/comments/3hh80d/windows_10_nvidia_35560_forge_1013414921710_crash/

Summary: newest: nvidia driver set installed DVR which makes MC crash. Should be solved by downgrading/uograding driver is by disabling that DVR service.

Case 2

I suspect there is another problem with windows 10 + java 8u60 which can be fixed by downgrading java.

  1. http://support.feed-the-beast.com/t/pixel-format-not-accelerated/18085
    * version info N/A
  2. http://forum.feed-the-beast.com/threads/launcher-crashing-before-game-can-launch.108927/ * 9.17.10.4229, Card name: Intel(R) HD Graphics 3000
  3. http://support.feed-the-beast.com/t/the-launcher-wont-load-any-of-the-packs/18449/3?u=jikuja * GL info: ' Vendor: 'Intel' Version: '3.1.0 - Build 9.17.10.4229' Renderer: 'Intel(R) HD Graphics 3000'

I'll update this thread if getting more reports.

jikuja avatar Sep 06 '15 12:09 jikuja

I can confirm Case 2. Specs:

  • Windows 10 Pro release, most recent (10.0.10240)
  • JRE 1.8.60 x64
  • Intel HD Graphics 3000
  • Intel drivers from May 2015, obtained trough Windows Update (9.17.10.4229)

Log: http://paste.ee/p/QUtXa

4rz0 avatar Oct 20 '15 06:10 4rz0

I don't see how these are LWJGL issues. The first Case describes a java runtime crash, which would suggest other software is conflicting with the java runtime. The second case uses WDM drivers provided by Microsoft, since Intel has dropped support for Intel HD 2000/3000 series chipsets at Windows 8. I'm actually surprised the game runs at all with them, since Microsoft is notorious for it's limited OpenGL support. That being said, it is strange that different java versions affects whether the game can run. This however sounds like a bug with java, rather than LWJGL.

CubeTheThird avatar Oct 20 '15 14:10 CubeTheThird

The second case is actually split. There are two issues.

  • quite often what you say is true. Some old intel GPUs are not supported on Windows 10 by Intel anymore.
  • however, there is a second issue, where if you use LWJGL with the Intel GPU together with java 8u60, it won't work, while older versions of java work - like 8u25, which Minecraft normally ships with.

The difference is the JRE version used.

peterix avatar Oct 20 '15 14:10 peterix

I have seen several cases in tech support where users with 2000 and 3000 series (on Windows 10) suddenly can't play the game any more. While we figured the Microsoft driver updates were the cause, this may a more plausible explanation.

CubeTheThird avatar Oct 20 '15 15:10 CubeTheThird

Oh yea, should have mentioned that. I'll experiment and see from which version of java on it stops working.

4rz0 avatar Oct 20 '15 17:10 4rz0

Updating to 1.8.65 or .66 (a hotfix) didn't fix the problem. Downgrading to the previous version, 1.8.51, and it works. So yea, 1.8.60 is the first version that gives the error.

4rz0 avatar Oct 20 '15 20:10 4rz0

Confirmed with many individuals in the tech support chat. Downgrading java or using native launcher works, for all Sandy Bridge chipset processors.

CubeTheThird avatar Oct 27 '15 00:10 CubeTheThird

Does mojang track this? This might be problem as soon as they want to update bundled JRE.

jikuja avatar Oct 27 '15 01:10 jikuja

Every inquiry I've seen in regards to updating the bundled JRE version has suggested that, unless there's really a need to do so, it's not going to happen. That isn't to say it won't ever be updated, but there would have to be sufficient grounds for that to occur. I will bring this up on the bug tracker, and perhaps elsewhere, should an update be in the works, or occur. That being said, it isn't overly complicated to change the executable path to use an older installed version of java either.

CubeTheThird avatar Oct 27 '15 01:10 CubeTheThird

I've just confirmed this for Arrandale (1st gen) HD graphics too. The user though was also having graphical issues once changing java versions was done. It is unclear whether this is solely an issue for that user though.

CubeTheThird avatar Nov 09 '15 18:11 CubeTheThird

I guess we'll have to do the same thing in MultiMC. Bundle a known good version...

On Mon, Nov 9, 2015 at 7:19 PM, CubeTheThird [email protected] wrote:

I've just confirmed this for Arrandale (1st gen) HD graphics too. The user though was also having graphical issues once changing java versions was done. It is unclear whether this is solely an issue for that user though.

— Reply to this email directly or view it on GitHub https://github.com/LWJGL/lwjgl/issues/119#issuecomment-155145425.

peterix avatar Nov 09 '15 21:11 peterix

Still an issue with 8u71: https://paste.ee/p/0t7Qb

peterix avatar Jan 20 '16 07:01 peterix

Your graphics card doesn't support Windows 10. This is a well known fact you can find it anywhere. (And this isn't lwjgl's fault)

Solution: Get a new graphics card or find new drivers that support Windows 10

20 jan. 2016 kl. 08:36 skrev Petr Mrázek [email protected]:

Still an issue with 8u71: https://paste.ee/p/0t7Qb

— Reply to this email directly or view it on GitHub.

TheGrimsey avatar Jan 20 '16 07:01 TheGrimsey

Why those intallatons work with java versions older than 8u60?

jikuja avatar Jan 20 '16 16:01 jikuja

@Subtleoliver That is not MY issue. I run linux exclusively and have a 980ti.

You might want to tell the possibly thousands of users of MultiMC affected by this. Tell them that their laptop/graphics card is obsolete and that they should drop hundreds of dollars on one that doesn't suck. Send them the money while at it :)

Now you might see the issue. It only started happening with a JAVA update. It is a purely software problem. The same drivers, OS and hardware combination works just fine with 8u25.

peterix avatar Jan 21 '16 01:01 peterix

So, I blame Java, but see LWJGL as the place to fix this, because getting Oracle to fix anything seems like a huge uphill battle.

peterix avatar Jan 21 '16 01:01 peterix

I'll dig into this once I don't have to quell other raging flames...

peterix avatar Jan 21 '16 01:01 peterix

It works fine with Java 8u25 cause that's the version it's supposed to run. (It's packaged with h the launcher). If that's the problem then just run it with the version it's supposed to.

21 jan. 2016 kl. 02:38 skrev Petr Mrázek [email protected]:

@Subtleoliver That is not MY issue. I run linux exclusively and have a 980ti.

You might want to tell the possibly thousands of users of MultiMC affected by this. Tell them that their laptop/graphics card is obsolete and that they should drop hundreds of dollars on one that doesn't suck. Send them the money while at it :)

Now you might see the issue. It only started happening with a JAVA update. It is a purely software problem. The same drivers, OS and hardware combination works just fine with 8u25.

— Reply to this email directly or view it on GitHub.

TheGrimsey avatar Jan 21 '16 08:01 TheGrimsey

This logic is all backwards. I am not a user. This is a LWJGL or Java bug. I am not interested in a workaround, I already know them. And walking users through these takes away from other things.

peterix avatar Jan 21 '16 09:01 peterix

Is lwjgl designed for java 8u25 or what is logic here? Please read support tickets before commenting and giving unsourced opinions about well known facts.

Here is one fact: https://bugs.mojang.com/browse/MC-297 the bug is known by mojang. Someone with hardware access should test this, write SSCCE and send it to intel/MS(theird driver) and oracle(their code caused regression, why?).

jikuja avatar Jan 21 '16 12:01 jikuja

No minecraft is.

21 jan 2016 kl. 13:03 skrev jikuja [email protected]:

Is lwjgl designed for java 8u25 or what is logic here? Please read support tickets before commenting and giving unsourced opinions about well known facts.

Here is one fact: https://bugs.mojang.com/browse/MC-297 the bug is known by mojang. Someone with hardware access should test this, write SSCCE and send it to intel/MS(theird driver) and oracle(their code caused regression, why?).

— Reply to this email directly or view it on GitHub.

TheGrimsey avatar Jan 21 '16 13:01 TheGrimsey

@Subtleoliver So what you want to tell us is to use a way outdated version of Java? There have been quite a few critical Java-updates released since then and Mojang still ships with a version from 2014, because obviously the newer versions would prevent many people from playing. This matter should be high priority, and a fix must involve not to "update your graphics card", but to fix the underlying problem in java trough whatever means.

4rz0 avatar Jan 21 '16 13:01 4rz0

That is the version minecraft "want" to use. It is packaged with the launchers for mac and windows. https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail Det här e-brevet skickades från en virusfri dator som skyddas av Avast. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail <#DDB4FAA8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

2016-01-21 14:58 GMT+01:00 4rz0 [email protected]:

@Subtleoliver https://github.com/Subtleoliver So what you want to tell us is to use a way outdated version of Java? There have been quite a few critical Java-updates released since then and Mojang still ships with a version from 2014, because obviously the newer versions would prevent many people from playing. This matter should be high priority, and a fix must involve not to "update your graphics card", but to fix the underlying problem in java trough whatever means.

— Reply to this email directly or view it on GitHub https://github.com/LWJGL/lwjgl/issues/119#issuecomment-173576884.

oliver

TheGrimsey avatar Jan 21 '16 14:01 TheGrimsey

Stating that Mojang does not fix the problem and employs a workaround adds nothing to the discussion. I think everyone already knows that. The workaround is IMHO not acceptable.

The way I see it, no actual investigation of the issue has been done. We have workarounds like replace your hardware or use outdated java versions.

The hardware in question has perfectly well working drivers on Windows 10 and supports OpenGL 2.1. It even works with Minecraft as long as you do not update java.

Someone with that hardware, a Java and/or native debugger and the required skill should replicate the issue and find out what the root cause is. Then it should be fixed or worked around in a way that does not compromise user security.

I do not have the hardware. Otherwise, I'd already have done it.

peterix avatar Jan 21 '16 15:01 peterix

I've been able to reproduce this on Windows 10, HD 2000 on a Sandy Bridge i5, driver version 9.17.10.4229. OpenGL (version 3.1) works on all JVMs up to 8u51. Starting from 8u60, the Intel OpenGL driver refuses to load. Specifically:

  • The OpenGL ICD works just fine.
  • If the Intel iGPU drives the main display, the OpenGL ICD will try to load the Intel OpenGL driver. This fails on 8u60+.
  • The OpenGL ICD will then try the software OpenGL 1.1 driver that comes with Windows. That driver works, but of course LWJGL fails with the infamous "Pixel format not accelerated" error.

The machine I'm testing on also has a discrete Nvidia GPU which I had disabled for the above. Interestingly, when enabled with a secondary monitor attached to it, the ICD will again first try the Intel driver and when that fails it will load the Nvidia one successfully. This works even with no monitor attached to the Nvidia GPU.

I'm certain that this is not an LWJGL bug. The latest LWJGL 2.9.4 nightly build behaves the same and so does LWJGL 3 (which uses GLFW for window/context creation). So, there's something in Java 8u60 that the Intel driver doesn't like. I went through the release notes and all changes that made it into the u60 release, but couldn't find anything relevant.

In order to debug this, I changed the LoadLibrary("opengl32.dll") call (the ICD) to LoadLibrary("ig4icd64.dll") (the Intel driver). This failed with ERROR_DLL_INIT_FAILED: A dynamic link library (DLL) initialization routine failed. I then used Dependency Walker to profile the same LWJGL program running under Java8u51 and Javau60. The logs, up to loading ig4icd64.dll and after removing all hex values for easier comparison:

The 8u60 log ends with the DLL_PROCESS_ATTACH error. It looks like that the Intel OpenGL driver tries to call D3DKMTOpenAdapterFromHdc, which probably fails, then it returns 0 to the OpenGL ICD. As for JVM differences, what's interesting is the function Java_java_lang_ProcessEnvironment_environmentBlock which is only called in 8u60. I'll investigate more tomorrow and keep you updated.

Spasi avatar Jan 22 '16 02:01 Spasi

Java 8u60 seems to update sun.usagetracker.UsageTrackerClient class to call System.getEnv() which will call Java_java_lang_ProcessEnvironment_environmentBlock: https://gist.github.com/anonymous/100ec231a734cd97eca1

I wonder if calling System.getEnv() with < java 8u60 before opening display triggers same behaviour. Sadly can't test (yet) because I have not installed windows 10.

jikuja avatar Jan 22 '16 11:01 jikuja

Tried different JVMs:

  • Azul Zulu 8u51, works.
  • Azul Zulu 8u60, fails. Zulu is based on OpenJDK and there's no Java_java_lang_ProcessEnvironment_environmentBlock, so it must be something else.
  • IBM J9 based on 8u51, fails. This complicates things.

Spasi avatar Jan 22 '16 12:01 Spasi

I wonder if calling System.getEnv() with < java 8u60 before opening display triggers same behaviour.

Tried with 8u51, it doesn't.

Spasi avatar Jan 22 '16 13:01 Spasi