Regarding the Generic renderer bug there are at least 2 problems that cause this, the guys at ImageJ looked into this for a long time, here is the code in 1.7 that addresses it, possibly your non windows 10 users are getting the first case?
If you are still getting after changing the properties to "sun.java2d.noddraw"=false and "sun.java2d.d3d"=true then I'd love to hear more about that, as I had hoped this issue was fully understood. Neither of the above properties helps in any manner, so they really shouldn't be set as far as I'm aware, but legacy advice lingers. Only System.setProperty("sun.awt.noerasebackground", "true"); is needed. The slow start up time has never occurred on my machines, so I haven't been able to replicate it, however I read some discussions that suggested setting "sun.awt.nopixfmt", "true" will improve start times. It would be great if you could test that out and tell us if it changes anything. |
phil,
Thank you for the pointing out this code to deal with Intel graphics cards. I do not set the sun.java2d.noddraw or sun.java2d.d3d so they use the default values. Please note that my problem occurs on the computers that have "Microsoft Drivers". Also my problem is not limited to Intel HD2000. Here are examples of some other video cards that have this problem: - Intel[R] 82945G Express Chipset [Microsoft Corporation - WDDM 1.0] - Mobile Intel[R] 945 Express Chipset Family [Microsoft Corporation - WDDM 1.0] - Intel[R] G41 Express Chipset [Microsoft Corporation - WDDM 1.1] - Mobile Intel[R] 4 Series Express Chipset Family [Microsoft Corporation - WDDM 1.1] - Intel[R] G33/G31 Express Chipset Family [Microsoft Corporation - WDDM 1.0] - Intel[R] G41 Express Chipset [Microsoft Corporation - WDDM 1.1] - Intel[R] Q45/Q43 Express Chipset [Microsoft Corporation - WDDM 1.1]
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
|
Thanks for that list,
as you can see here all of those drivers are unsupported on Windows 10 http://www.intel.com/content/www/us/en/support/graphics-drivers/000005526.html So we are facing the Java 1.8u52+ on Win10 with old Intel cards by teh look of it https://jogamp.org/bugzilla/show_bug.cgi?id=1278 best investigation here by the Lwjgl guys: https://github.com/LWJGL/lwjgl/issues/119 So the solutions found so far are: 1 Run using webstart 2 Try to down grade the machine's java to 1.8u45 ( difficult) 3 Path the Jre manifest and offer people a replacement exe (difficult) 4 Possibly pathc the graphics driver adn offer to users (bad idea) 5 Add your own Jre in the install folder and start using that (make it Java 1.8u45). This is my preference, it requires code, but very easy to optionally start a local jre if it exists using a boot strap java process You can see how easy number 5 is by looking at this example code: https://github.com/philjord/ElderScrollsExplorer/blob/master/ElderScrollsExplorer/src/client/BootStrap.java I did it because MacOS never had the right Java or Java3D in it. To be honest a bootstrap lets you update to, so I'd suggest looking into it. I know SweetHome3D and ImageJ are both facing this issue from time to time and have to put in place solutions. As for getting Intel to fix the drivers, they refused to do it for MineCraft and they had already put MineCraft custom optimizations into their drivers, so I think they've dropped this issue. Thanks, Phil. |
Thanks Phil,
The link to Intel drivers certainly is useful for me. You mentioned Windows 10, but some of my users use Windows 8 and Windows 7 and get this problem too. I already bundle JVM 1.8u51 and could very easily downgrade to 1.8u45 but when Java 9 is released in July I certainly want to upgrade to that because of HiDPI support. So I guess I better wait until Java 9 and hope that it works better with Java 9.
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
|
Administrator
|
The chipsets you list have particularly bad OpenGL drivers anyway (when they don't simply crash). For example, I had a very important problem with some Express chipsets, either they claim to support VBOs whereas they don't, or they support them so poorly that using tiny unchanged display lists was less slow. Keep it in mind if you really want to support those chipsets. I know that lots of cheap laptops use Intel chips :( Moreover, what do you mean by "Microsoft drivers"? Its GDI renderer only supports OpenGL 1.1.
Julien Gouesse | Personal blog | Website
|
Yes, that's the issue that causes problem. They get this kind of exception: javax.media.j3d.IllegalRenderingStateException: Java 3D ERROR : OpenGL 1.2 or better is required (GL_VERSION=1.1) at javax.media.j3d.JoglPipeline.setupCanvasProperties(JoglPipeline.java:8082) at javax.media.j3d.JoglPipeline.createNewContext(JoglPipeline.java:6428) at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:4611) at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:2381) at javax.media.j3d.Renderer.doWork(Renderer.java:881) at javax.media.j3d.J3dThread.run(J3dThread.java:271) For many, they can probably fix the problem by updating their drivers. But this solution is not ideal because most either don't know how to update drivers or don't want to.
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
|
Administrator
|
Ok but you know that there is nothing magic. If they don't install any OpenGL driver, they'll be unable to use OpenGL. We cannot do that for them. It's not specific to Java3D by the way and using ANGLE or software rendering wouldn't bring the same performance.
Julien Gouesse | Personal blog | Website
|
Free forum by Nabble | Edit this page |