Bizarre vanishing/reappearing text in JDK 1.50 Update 6 programs

I'm not entirely sure if I'm posting this plea for help in the right place...

My computer is a custom-built machine using an AMD Athlon 64 FX-60 processor, 2GB of DDR 400 SDRAM by Corsair, two 74GB Raptor hard drives in Raid 0, and two nVidia GeForce 7800 GTX KO ACS3 video cards in SLI multi-GPU mode (driver version 84.21) on an Asus nForce4 SLI x16 motherboard. The PC is running Windows XP Professional as an OS.

Problematic software:

- JDK 1.50 Update 6

- LimeWire 4.10.9

- BlueJ 2.11

While running BlueJ or LimeWire, and even when opening the config utility in the control panel, certain text elements have developed the odd habit of vanishing and reappearing when clicked upon. Included are form labels, button text and textbox text, and certain images, which are appearing properly initially, and then when several clicks are made on those items or if any check boxes, radio buttons or other form tools are used, the text either vanishes completely, appears in a different part of the form, overlaps other text, or sometimes is only visible when highlighted, then vanishes completely when the highlighting is removed.

A screen capture of BlueJ encountering this problem is located at:

http://www.macross2.net/storage/BlueJ.JPG

This computer works properly in all other applications, and java applets in the web browsers all work perfectly, so I'm led to wonder if it's a complication caused by my processor (FX-60) or my video cards, because my other computer uses an Intel single core processor and doesn't experience this problem.

Is there any fix for this problem available in the form of a patch or a configuration change I can make?

If you need more information, I can be reached pretty much 24/7 at Webmaster@Macross2.net

thank you all in advance,

~M.

[1857 byte] By [Macross2Projecta] at [2007-10-2 17:51:08]
# 1
An update on the problem...I have ruled out my windows skin software, and Java itself as the sources of the mysterious vanishing text. Is there any known conflict with nVidia's forceware 84.21 drivers that would cause this sort of problem with JDK/JRE 1.50 Update 6?
Macross2Projecta at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 2

You might want to disable parts of the graphics acceleration until things work well.

I've seen systems that try one of the following three (at a time) until the graphics works (this is from Borland JBuilder's configuration file - each is a more drastic step that disables more of the acceleration - notice that I run with ddoffscreen=false):

-Dsun.java2d.ddoffscreen=false

# -Dsun.java2d.d3d=false

# -Dsun.java2d.noddraw

If the program you're having trouble with is an applet (or a Java webstart download), you'll have to tweak these parameters in the Java control panel.

shankar.unnia at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 3
Um... precisely how would I go about implementing that set of changes? I'm starting to think that it might just be the computer itself, like Java might not have support for the GeForce video cards or the Athlon 64 FX series processor.
Macross2Projecta at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 4

Okay, I tried inserting those after the executable path in the shortcuts, as I'm guessing was intended, and still got the same problems. I tried inserting the -Dsun.java2d.ddoffscreen=false first, and got the same problem asserting itself after a few minutes, same with the other two, though I'm not certain if I'm really using it properly, and definately not sure if that # is supposed to be included in the line, because I didn't use it.

No, the really odd part is that this only affects a few programs that use Java for their GUI, and it doesn't have any effect on applets, only on java executables.

Macross2Projecta at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 5
Okay, I tried inserting those command-line flags and the problem is still happening, it just takes it a little longer to happen. I'm wondering if there's anything else I can do. Any suggestions?
Macross2Projecta at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 6

I'm about ready to give up here, but one further question arose that may prove a solution to this odd problem.

I'm wondering if perhaps I may have installed the wrong version of Java on my machine. I'm running an AMD64 Athlon FX-60 dual core processor, but on the more stable 32-bit Windows XP Professional OS, and the version of Java I'm using is the the Windows Intel IA32 version of JDK 1.50_6...

Should I have used the 64-bit version for Windows XP x64?

Macross2Projecta at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 7

Hey,

I also have the same problem, but the applications that these disappearing components are coming from are actually applications that I am developing.

The vanishing is usually occuring for me when I minimize the program I'm developing and then maximize it.... I have no idea why this is happening but believe that it is something to do with the way I have coded these disappearing / reappearing components.

Let me know if you find anything.

Mike

mikeyfreakea at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 8

I have experienced this problem using Freemind (which has a graphical java interface) with an SLi set up. Maps would look okay until moved, at which points text etc. would disappear and reappear.

The problem goes away when the SLi rendering setting is changed to "Single GPU rendering". As such (I have very limited technical knowledge in this area) I assume that Java graphics are not happy with rendering across 2 graphics cards in SLi mode.

robert_uka at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 9

Make sure you have anti-aliasing set to Application-Controlled: http://www.java.com/en/download/help/5000041100.xml

Make sure you've updated to the latest video drivers.

Make sure Directx is updated to the latest version.

If that still doesn't work read http://forum.java.sun.com/thread.jspa?threadID=661574 and then try adding to your environment _JAVA_OPTIONS variable -Dsun.java2d.d3d=false. If that doesn't work try -Dsun.java2d.noddraw=true

If the problem was AA, then and you still want to force all 3d applications to use AA and you don't want to keep changing your graphics card display options, you can disable java's use of the Direct3D by setting an environment variable _JAVA_OPTIONS to -Dsun.java2d.d3d=false. This will allow you to keep your AA settings. Disabling Direct3D is the proposed update to 1.5 to fix this bug. See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6311320

Caffeine0001a at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 10

Okay, here is the workable solution as near as I've got it figured out.

PROBLEM:

Running a system using nVidia SLI or ATI Crossfire with multi-GPU mode enabled, you will see text items and the like drawn improperly, shifting, and vanishing. This occurs with Java 1.42 and Java 1.5

FAILED SOLUTIONS:

Command line flags to turn off antialiasing and the like DO NOT FIX THIS PROBLEM.

Using application profiles in the nVidia ForceWare properties to create single-GPU SLI/CF modes for each application doesn't fix the problem either.

SOLUTION:

Versions of nVidia Forceware after 83.xx don't require you to reboot after disabling or enabling SLI rendering, and will allow you to switch modes on the fly from the properties window.

The easiest solution is simply to turn SLI/CF off when you experience this problem, and temporarily run the computer as a single, unlinked GPU configuration. You can always turn SLI/CF on when you're finished.

Thank you, robert_uk, for your help and the quick fix solution.

With deepest gratitude,

Michael Kaiba

Project Director, Macross II Network

Message was edited by:

Macross2Project

Macross2Projecta at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 11

Well this is clearly the fault of broken video drivers and does not have a lot to do with java, except java uses the driver in a very optimized way that let such problems spot up.

I would send Nvidia a bug-report.

I wonder why the command-flag -Dsun.java2d.noddraw=true does not work, it disables the use of directdraw and direct3d and makes java behaving like any other windows gdi-only application. In fact you should not see any problems with this optimition set (but lower performance).

lg Clemens

linuxhippya at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 12

I sincerely doubt that.

I've tested this problem on both SLI and non-SLI systems, using the same version of the nVidia Forceware drivers (8.4.2.1) and the same version of Java (1.50_6) and the problem only occurs with the SLI system. If the problem was entirely in the video drivers, ALL Java apps and applets would have the same drawing problems, but as it stands, it's ONLY applications that use Java to build their GUI.

Java's use of the driver is what seems suspect to me, since Java utilizes the video driver just fine in single-GPU mode without having to disable directdraw or direct3d. Only when Java has to split the drawing load between two video cards does the problem actually occur. So it's likely more an issue of Java simply not being able to support splitting the rendering load between two video cards.

Though I'll be letting nVidia and Sun both know about it.

Macross2Projecta at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 13

> So it's likely more an issue of Java

> simply not being able to support splitting the

> rendering load between two video cards.

Ohm sorry but java does not care (like any other application) wether it runs on an SLI system or not. It simply calls the graphic-api it uses (GDI, DirectDraw, Direct3D, OpenGL) this call is passed to the driver and the driver has to know howto handle this.

You don't even get informed by DirectX or OpenGL wether you run on two physical cards or not, its the responsibility of the driver to split the workload as much as possible.

This is what happens:

Current video drivers are optimized for applications that repaint the whole window-content each frame when drawring through Direct3D or OpenGL, since the most common use of those APIs are games, which do exactly this type of operation.

Some applications (like java) use these APIs but invoke only operations touching a small area (which is OK, since these APIs definitivly allow this) but the driver manufacturer has not tested this case enough. Outch, a bug.

lg Clemens

linuxhippya at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...
# 14
i do have an SLi system, with latest drivers, java, etc......but i still get the vanishing/reappearing text in limewire when single gpu rendering is set and AA is set to app-controlled
dogdirt2000a at 2007-7-13 19:09:26 > top of Java-index,Desktop,Runtime Environment...