No, I think the problems with applets on ATI cards are more likely related to not being able to specify -Dsun.java2d.noddraw=true on the command line or programmatically.
We’ve seen several problems with applets including this one which we don’t have solutions for and for this reason I can’t recommend you go down this route. I would recommend you use Java Web Start instead.
hmpf, these ati problems are really strange. if i find some time, i will try to track down these problems… i think the applet stuff is the most interesting thing about jogl.
but anyway great stuff - thanks for your work.
I was reading the other day about setting JRE settings for the Java plugin http://java.sun.com/developer/community/askxprt/2006/jl0227.html and while it does not solve the problem it could provide a possible work around by allowing a user to download a custom deployment.properties http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/properties.html containing deployment.javapi.jre..args=-Dsun.java2d.noddraw=true and if placed in the right directory it could possibly work. While this is not an automated procedure (maybe with a signed applet?) it could potentially work (I make no guarantees)
i did a lot of testing, debuging and profiling with my applet, but still no success and i have no more ideas.
maybe someone of the experts can give me some new ideas where to look for the bug.
to sum up what i did: (java 1.5, jogl beta3, winXP)
applet runs fine on nivida systems, even without “-Dsun.java2d.noddraw=true”
runs fine on ati systems, when create in a jframe and not as applet.
hangs when running as applet in makeCurrentImpl [WindowsGLContext.java] and swapBuffers [WindowsOnscreenGLDrawable], even with “-Dsun.java2d.noddraw=true” in java applet settings. “maybeDoSingleThreadedWorkaround” is used to call the above methods.
if the applet doesn’t get any events at all, it doesn’t hang.
i tried alot of synchronizing and debuging the event system… but i just cant find it!
“active rendering” also failed in the end.
what does “maybeDoSingleThreadedWorkaround”?
and what about the (thread) differences between event processing in an applet and a normal java app.
Of course this is a problem with the ati driver, but i still think that there is a way around this, because of the point mentioned above.
i need some ideas, what to do next?! it would be so great to get the applet stuff working!!! please help me.
edit: maybe i can setup a small test project, where i call the opengl functions directly form the “WGL” class, as done in “WindowsGLContext.java”… just to see if it works. would that be possible?
What are the stack traces of the hangs in makeCurrentImpl and swapBuffers? If the app is stopped in WGL.wglMakeCurrent() and WGL.SwapBuffers() then these are OpenGL driver-level issues, not anything that can be solved at the Java level.
It pushes the OpenGL work done by JOGL (and the app’s GLEventListener work) onto a single thread for better reliability on more graphics cards.
This is an excellent question. As far as I understand it, almost all of the event handling is identical between applets and normal Java applications. There is some amount of event conversion that goes on by the Java Plug-In, but I think the events that it receives through the browser are dispatched via the normal AWT mechanisms. I don’t know what the Plug-In’s and the browser’s threading structure looks like, though.
I’m unfortunately not quite as optimistic. We have run into some really strange problems with JOGL-based applets (such as mysterious slowdowns in Firefox/Mozilla only that don’t appear in IE) which we haven’t had success in tracking down. The reliability problems you bring up are even more serious. At this point I don’t have any good suggestions for you. It would be good to know whether you are seeing these problems with Firefox or IE. These two browsers have different Java Plug-Ins due to their different plug-in architectures, and if you’ve been running with Firefox you may see different/better results with IE.
In the end though I would recommend you deploy your app via Java Web Start.
You can access these functions for testing purposes, but I don’t think you’re going to see any different results. I would be surprised if this was a Java-level deadlock. We can confirm this if you post some stack traces from your applet when it hangs.
BTW, your applet works fine on my machine with an NVidia Quadro FX Go700 chip. I agree it’s pretty neat to step through the city model from within a web page, but I think this app would work just fine in a separate window launched via Web Start.
although it doesn’t work jet, this is great support here!!!
the problem occurs the same way in Firefox and IE.
if i call the GLEventListener’s display method directly in the mouseDragged-Event (not via event.getComponent().update()) i get this stack trace form the profiler:
the time the system is hanging around seams to distribute randomly in (1) and (2).
[quote]If the app is stopped in WGL.wglMakeCurrent() and WGL.SwapBuffers() then these are OpenGL driver-level issues, not anything that can be solved at the Java level.
[/quote]
hm… there are some problems with the ati driver, because the applet works on nvidia systems, thats for sure. but the same code used in a jframe works with this problematic ati driver. also passing the events nicely one after the other (moving the mouse slow) reduces (maybe avoids) the problems.
i’ll give the “low-jogl-level” methods a try within the next week.
I’d like to work with you on this and keep this thread active. I share your optimism in that while this problem may not be solvable on the Java-level, workarounds seem possible given the problem’s ties to event handling. I’ll keep you updated if I see any progress. It would be great if we could resolve these issues, as Java Web Start is just not a solution.
my applet is now running fine on my winXP sp2 ati box.
i just updatet the driver to catalyst 6.3 (as already mentioned in other threads)
now i want to know if the new driver solves the hang problem on other ati systems, too.
please, please update your ati driver and test the applet http://www-users.rwth-aachen.de/Felix.Heidrich/jogl.htm