Display driver in Windows 7 (64bit)

Started by EgonOlsen, January 08, 2010, 23:12:09

Previous topic - Next topic

EgonOlsen

Hi all,

one of my users seems to have a problem with running jPCT stuff properly in Windows 7 64bit. It runs, but he reports that it's very slow (i.e. slower than jPCT's software renderer), which it actually shouldn't be. He has a NVidia GeForce 220...nothing great, but it should do the job. Judging from the log, the returned value from Display.getAdapter() is "RDPDD", which makes me wonder. I did some research and this seems to be the Remote Desktop Protocol Display Driver, which does not look like the one that i actually want to access. I've found some threads dealing with older games (not java related) that didn't work anymore under some Windows 7 installations for this reason.

He's using the AWTGLCanvas if that matters (i don't know if he has the same problem when using native OpenGL yet). Could this RDPDD-thing be the problem and if yes, can i somehow avoid it and get the proper driver? The AWTGLCanvas can take a java.awt.GraphicsDevice in the constructor, but i've no idea if that helps. I tried to print out all available devices on my machine, but i'm on Vista and that reports only one, which is called "Display0".

Any ideas?

Edit: As said below, his drivers are the latest fomr NVidia, not the ones that come with Windows 7.

kappa

my guess is that he's using the default widows 7 opengl drivers, he should try get the latest nvidia drivers direct from there site and see if it helps.

as for AWTGLCanvas, best to avoid use of that and go for the much better, faster and newer Display.setParent(Canvas) method. Since the first is limited by AWT (repaint) and second is not.

EgonOlsen

Quote from: javalwjgl on January 08, 2010, 23:18:29
my guess is that he's using the default widows 7 opengl drivers, he should try get the latest nvidia drivers direct from there site and see if it helps.

as for AWTGLCanvas, best to avoid use of that and go for the much better, faster and newer Display.setParent(Canvas) method. Since the first is limited by AWT (repaint) and second is not.
I forgot to mention that he uses the latest drivers from NVidia. And you can't avoid the AWTGLCanvas if you want to have multiple canvas' in one frame and similar things.

BTW: This seems to describe a similar problem: http://www.planetmule.com/forum?topic=314.msg1424

kappa

hmm, odd.

My next guess would be that java2d acceleration is somehow causing a clash with lwjgl, this is one of the common problems with AWTGLCanvas (which Display.setParent() doesn't suffer).

any way you can get the user to run lwjgl with the following java vm arguments?

-Dsun.java2d.noddraw=true -Dsun.awt.noerasebackground=true -Dsun.java2d.d3d=false -Dsun.java2d.opengl=false -Dsun.java2d.pmoffscreen=false

EgonOlsen

I've asked him to try that. He has already tried -Dsun.java2d.d3d=false himself, but to no avail.

EgonOlsen

We did some more tests and actually the system and jPCT/LWJGL seem to perform fine (just not in his application, which might have other reasons.). The RDPDD-thing is maybe just a little oddity rather than a real problem.
I'll report back later on this...

Endolf

Hi

I'm trying to get some debug so that I can log exceptions when they occur on a users system. One of the items i'm trying to get is the driver version. It looks as though on windows 7 the driver in HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO in \Device\Video0 is the RDPDD driver, in \Device\Video4 and \Device\Video5 I have the references to the real NVidia drivers on my system. This means that the Display.getAdapter() doesn't return the nvidia card, so Display.getVersion() doesn't return the driver version for the nvidia drivers (ends up returning null).

Is this an issue that anyone is willing to look at?

Cheers

Endolf