Jogl rendering problem with graphics hardware acceleration

Hi,

I want to write my java client application using jogl. But there are always some rendering problems with the grapics card hardware acceleration function on my laptop.
I use GLJPanel in my code.

  1. If I turn off hardware acceleration (Right click desktop – > go to Display properties by selecting “properties” --> Settings --> Advanced --> Troubleshoot --> Hardware acceleration, set hardware acceleration to “None”), the rendering in the client application works well.
  2. If I turn on the hardware acceleration and set it to “Full”, the rendering in the client application doesn’t work well. The background of the panel is distorted and filled with snippets of some other old graphs
  3. If I run this application on another old desktop with different version of graphics card driver, it works well.

I believe this has something to do with the driver version of the Mobile Intel® 965 Express Chipset Family on my laptop. The current driver version is 6.14.10.4831. But I really need to make it work on this laptap. Could anyone give me some hints on how to fix the problem?

Thanks


The configuration of my laptap is as below:
Dell Latitude D630
Intel® Core™2 Duo CPU
T7300 @ 2.00GHz
777 MHz, 1.99 GB of RAM
Physical Address Extension

Code:

package jogl;

import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLJPanel;
import javax.swing.JFrame;

public class MyJoglTest {

public static void main(String[] args) {

	JFrame frame = new JFrame("Hello World!");
	
	/* Jogl panel */
	GLCapabilities glCaps = new GLCapabilities();
	glCaps.setHardwareAccelerated(true);
	glCaps.setDoubleBuffered(true);

	GLJPanel mainPanel = new GLJPanel(glCaps);
	mainPanel.setBackground(Color.RED);

	frame.add(mainPanel);
	frame.setSize(600, 600);
	frame.setVisible(true);

	frame.addWindowListener(new WindowAdapter() {
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
	});
}

}

Try to provide the GLJPanel with a GLEventlistener and call glClear() within it’s display-Method. Maybe that avoids the distortion.

When you are on windows, remember to start your app with -Dsun.java2d.noddraw=true, if you don’t do it already.

Thanks for your suggestion. I added -Dsun.java2d.noddraw=true as the system property when I started running the sample application. But the problem still exists. Do you have any other advice?

Cheers,
Xiangwei

I’ve got bad news, good news, and hopefully better news.

First the bad news, Intel IGPs suck, really really badly. They’re DirectX support tends to be bad, their OpenGL is even worse.

The good news, Intel is getting serious about graphics, and as such they’re investing more resources in it. Only problem is it’ll be quite a while before these efforts see the light of day.

The hopefully better news, it looks like there are newer drivers than the ones you are using, http://www.intel.com/support/index.htm?iid=homepage+hdr_nav1_support which might resolve some of your issues.

It solved my problem when I added the GLEventlistener to GLJPanel and called glClear() in display method. But this is only the sample application. Actually I have a quite large application running on this laptop. The problem is the visual area of GLJPanel is cropped to a small rectangle. The rest of the visual area outside of the rectangle is blank. But if I run the application on another old desktop with different version of graphics card driver, it works well. Could you give me some suggestion on that?
And I will keep working and try to reproduce the problem on this sample application.

Thanks,
Xiangwei