United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6458746 : OGL: mustang b94 doesn't work correctly with JDialog (Nvidia, 91.31, Windows)

Details
Type:
Bug
Submit Date:
2006-08-10
Status:
Closed
Updated Date:
2010-04-02
Project Name:
JDK
Resolved Date:
2006-08-15
Component:
client-libs
OS:
windows_xp
Sub-Component:
2d
CPU:
x86
Priority:
P3
Resolution:
Not an Issue
Affected Versions:
6
Fixed Versions:

Related Reports

Sub Tasks

Description
FULL PRODUCT VERSION :
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b94)
Java HotSpot(TM) Client VM (build 1.6.0-rc-b94, mixed mode, sharing)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [version 5.1.2600]

EXTRA RELEVANT SYSTEM CONFIGURATION :
nvidia driver 91.31

A DESCRIPTION OF THE PROBLEM :
When activating the opengl pipeline (-Dsun.java2d.opengl=true) in mustang b94 the login dialog (JDialog) of my app is not correctly displayed.

In fact the content pane of the dialog is not displayed (dialog decoration is correctly displayed) and components on content pane continu to work (i.e. Mouse cursor changing into caret over JFieldText, JButton reacting to mouse click).

When resizing the dialog the program terminates with:
Java Result: -1073741819

When the opengl pipeline is not activate everything works correctly.
This code worked correctly with mustang b86 (nvidia driver 84.21) and opengl pipeline activated.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the provided example with -Dsun.java2d.opengl=true.

The example creates a simple JDialog containing a JButton.
When clicking on the button it should display "click" in the console.
When resizing the dialog, windows kills the app and reports a bug.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I expect to see a correctly displayed JDialog on the top left corner of the screen with a JButton on it  and being able to resize to dialog wihout windows reporting for a bug.

ACTUAL -
Actually the content of the JDialog is not displayed at all (transparent behavior).
And resizing the dialog kills the app with Windows reporting a bug.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
there no jvm crash. Windows reports a bug and kills the app with return code -1073741819.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
package javaapplication1;

import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;

public class Main {
	public Main() {
		LoginDialog dialog = new LoginDialog();
		dialog.pack();
		dialog.setVisible(true);
	}

	public static void main(String[] args) {
		new Main();
	}
	
	public class LoginDialog extends javax.swing.JDialog {
		public LoginDialog() {
			super((Frame)null, false);
			JButton button = new JButton();
			add(button);
			button.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					System.out.println("click");
				}
			});
		}
	}
}
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
I didn't found any bypassing method.

                                    

Comments
EVALUATION

Nvidia has fixed driver issue 242459 (mentioned above) in their nv95 series
drivers (96.60 or later).  We will verify their fix once a beta driver is
available.
                                     
2006-09-11
WORK AROUND

Until a driver fix is available from Nvidia, you can work around this bug
by passing the following system property on the command line:
  -Dsun.java2d.opengl.fbobject=false
                                     
2006-08-15
EVALUATION

The submitter provided an update saying the board is an Nvidia GeForce 6600GT,
and that passing -Dsun.java2d.opengl.fbobject=false on the command line makes
the problem go away.  This confirms that the problem is indeed caused by the
Nvidia driver bug mentioned previously.  It is unfortunate that this driver
regression was introduced at the same time that we enabled the FBO codepath
by default, but other than using the user workaround described earlier, there's
no simple way to work around the problem in the JDK code, so it is best to
wait for a driver update from Nvidia.  Closing as "not a JDK bug" for now, but
I will update this bug report shortly once I find out in which Nvidia release this
driver bug will be fixed.
                                     
2006-08-15
EVALUATION

This is almost certainly caused by a recent regression in Nvidia's Windows
drivers related to our FBO codepath (which was enabled by default in b92).
A bug report was filed a couple weeks back with Nvidia regarding this issue
and they have been investigating it:
  242459: Java apps stop rendering (or crash) when FBO codepath
          enabled (91.33, Windows)

If this is indeed the same problem the submitter is seeing, it should be
possible to work around the problem by specifying
  -Dsun.java2d.opengl.fbobject=false
on the command line.  But I will need to know which board the submitter is
using to be entirely certain that this is the same problem.
                                     
2006-08-11



Hardware and Software, Engineered to Work Together