Uncontrolled flicker

[quote]keving wrote:
Is this the same 82852/82855 laptop that you are having the flickering problem with the JOGL Demos? Are you running the viewer with DirectDraw and Direct3D acceleration turned off?
[/quote]
Yep, same laptop, full acceleration. Gears demo flickers under all version of jogl after 1.0, but your Race Viewer runs fine.

[quote]keving wrote:
Have you tried the Demos with jogl 1.1b04? If you still have the Race Viewer installed in Webstart, you can pull this version of jogl from your Webstart cache. Look for the files RMjogl.jar and RMjogl_lib.jar. Rename RMjogl.jar to jogl.jar, and extract jogl.dll from RMjogl_lib.jar.
[/quote]
Couldn’t see the RM* jars, but downloaded current jogl nightly build and Gears demo still flickers. Must say deploying a nightly build with a production app sounds pretty scary.

[quote]keving wrote:
Maybe just simulating full sceen mode will be sufficient for your app?
[/quote]
Fullscreen is not a big issue for me. My app is only at the idea stage. I’m learning OGL and evaluating Java bindings, trying to find a stable foundation on which to build. Maybe write a facade layer to decouple the app from the bindings and reduce risk of being locked in to something flakey. Maybe even write a minimalist binding with just the features I need, as and when I need them. Would regain some control.

daymark wrote:

[quote]Yep, same laptop, full acceleration. Gears demo flickers under all version of jogl after 1.0, but your Race Viewer runs fine.
[/quote]
Hmmm. As Sylvester (see left) would say: “There’s something scsscrewy here…”

The current version of the race viewer is a port from GL4Java and I used the Gears demo source code as a starting point - so I don’t think there’s anything significantly different in the race viewer wrt setting up the JFrame, animator and GLCanvas etc. - and I don’t think there’s really much else to consider? I’ll look at the Gears demo source again - maybe I’ll find some clues as to why the demos flicker on some machines, and not the race viewer, and vice versa.

I have not yet been able to test noddraw=true on a machine that displays this problem. I might have to email a JNLP file with this setting to one of the users to test.

daymark:

[quote]Must say deploying a nightly build with a production app sounds pretty scary.
[/quote]
Is this really a “Nightly Build” anymore? I’m using the version from https://games-binaries.dev.java.net/build/index.html - under nightly builds and dated 14 May 2004. that one has since been replaced by a new build dated 17 May. No new builds since than. The 14 May build was the version I used throughout development and testing and at the time of deployment I decided that the risk in going back to b03 or forward to the 17 May build was greater than just staying with what I knew was working for me.

In any event, the flickering problem exists even with the latest builds.

Is b04 really still “Nightly Build”? Can anyone elaborate on this?

Kevin

[quote]Is b04 really still “Nightly Build”? Can anyone elaborate on this?
[/quote]
At a guess, builds are only made if the source code changes.

just to add to the discussion. I to am seeing uncontrolled flicker with the gears demo (or any demo I try to run).

I am using a win2k laptop with the following opengl driver

GL_VENDOR: ATI Technologies Inc.
GL_RENDERER: Radeon 7000 DDR x86/SSE
GL_VERSION: 1.3.3561 Win2000 Release

The funny thing is by default it chooses the default generic microsoft driver (even if I request hardware accelerated) and I get flicker. If I try to specify what I want in the pixel format, particularly depthbits then it chooss the ATI driver but I get a completely white screen. This raises several questions - why would the generic microsoft driver flicker ? It supports double buffer and I have tried specifing double buffer or not, and why when it chooses the ATI driver do I not see anything at all ?

I have several other openGL applications and they choose and run the ati driver fine. If I force the microsoft generic driver on it also works fine for other apps.

Any ideas, as I am keen to use jogl but can’t until this basic problem is solved ?

another interesting thing is that I just tried the jake2 implementation and it does not flicker at all. If I copy the version of jogl.jar that they use then gears works fine for me.

So does anyone know which build jake2 uses ?

I’m not sure what jake2 is, but here’s a listing of the different jogl versions and their byte sizes.

Directory of C:\Documents and Settings\kevin\Desktop\Jogl Versions\1.0 - April 12

04/12/2004 10:02 AM 483,328 jogl.dll
04/12/2004 10:57 AM 796,417 jogl.jar
04/12/2004 10:02 AM 40,960 jogl_cg.dll

Directory of C:\Documents and Settings\kevin\Desktop\Jogl Versions\1.1.0-b04

05/17/2004 02:34 AM 1,097,438 jogl.dll
05/17/2004 02:33 AM 648,097 jogl.jar

Directory of C:\Documents and Settings\kevin\Desktop\Jogl Versions\1.1b01 - April 21

04/21/2004 09:56 PM 659,456 jogl.dll
07/02/2004 11:52 AM 952,616 jogl.jar
04/21/2004 09:56 PM 40,960 jogl_cg.dll

Directory of C:\Documents and Settings\kevin\Desktop\Jogl Versions\1.1b02 - April 22

04/21/2004 09:56 PM 659,456 jogl.dll
07/02/2004 12:17 PM 953,362 jogl.jar
04/21/2004 09:56 PM 40,960 jogl_cg.dll

Directory of C:\Documents and Settings\kevin\Desktop\Jogl Versions\1.1b03 - April 29

04/29/2004 03:51 PM 659,456 jogl.dll
07/02/2004 12:03 PM 957,296 jogl.jar
04/29/2004 03:51 PM 40,960 jogl_cg.dll

Directory of C:\Documents and Settings\kevin\Desktop\Jogl Versions\2003

09/05/2003 11:02 AM 483,328 jogl.dll
09/05/2003 11:19 AM 564,699 jogl.jar
09/05/2003 11:02 AM 40,960 jogl_cg.dll

I confirmed today that my system at work is subject to the same issues as daymark’s card.

[quote]I confirmed today that my system at work is subject to the same issues as daymark’s card.
[/quote]
What’s the spec?

It must have something in common with my laptop (Dell Inspiron 510m, 1.4GHz Pentium M, 512MB, 15" SXGA 1400 x 1050, Intel 82852/82855 GM/GME graphics adapter, XP-Pro SP1).

Operating System: Windows XP Professional (5.1, Build 2600) Service Pack 1 (2600.xpsp2.030422-1633)
System Manufacturer: Dell Computer Corporation
System Model: OptiPlex GX240
Processor: Intel® Pentium® 4 CPU 2.20GHz
Memory: 512MB RAM
Card name: 16MB ATI Rage 128 Ultra
Manufacturer: ATI Technologies Inc.
Chip type: RAGE128 PRO II, (AGP 4X/PCI)
DAC type: Internal DAC (350Mhz)

[quote]just to add to the discussion. I to am seeing uncontrolled flicker with the gears demo (or any demo I try to run).

I am using a win2k laptop with the following opengl driver

GL_VENDOR: ATI Technologies Inc.
GL_RENDERER: Radeon 7000 DDR x86/SSE
GL_VERSION: 1.3.3561 Win2000 Release

The funny thing is by default it chooses the default generic microsoft driver (even if I request hardware accelerated) and I get flicker. If I try to specify what I want in the pixel format, particularly depthbits then it chooss the ATI driver but I get a completely white screen. This raises several questions - why would the generic microsoft driver flicker ? It supports double buffer and I have tried specifing double buffer or not, and why when it chooses the ATI driver do I not see anything at all ?

I have several other openGL applications and they choose and run the ati driver fine. If I force the microsoft generic driver on it also works fine for other apps.

Any ideas, as I am keen to use jogl but can’t until this basic problem is solved ?
[/quote]
I hadn’t noticed the driver was changing (didn’t know it could!) until I read this, so I did some more testing of my laptop running Gears. There is a definite correspondance between MS driver and flicker:

JOGL 1.0 is using the Intel driver which renders ok:

GL_VENDOR: Intel
GL_RENDERER: Intel Montara-GM
GL_VERSION: 1.3.0 - Build 4.14.10.3701

JOGL 1.1b03 is using MS driver which flickers:

GL_VENDOR: Microsoft Corporation
GL_RENDERER: GDI Generic
GL_VERSION: 1.1.0

How does the driver get selected - is this down to jogl or the OS ?

Daymark wrote:

[quote]JOGL 1.1b03 is using MS driver which flickers:
[/quote]
I have seen this too with one of the Race Viewer users who has the flickering problem on Intel 82845 graphics.

Would you mind running the Race Viewer again (i.e with no flicker) and check what driver it’s using in your case - details are written to the Java console on start-up. Remember that the Race Viewer is using the 14 May build of JOGL 1.1b04.

Just curious: You mention GL version 4.14.10.3701? Is this maybe a typo? According to http://www.intel.com/support/graphics/sb/CS-009479.htm#845 the leading “4” indicates a Windows 95/98/NT driver, but you have Windows XP? Possibly, the OpenGL version numbers aren’t necessarily always the same as the Driver version numbers?

Kevin

[quote]Would you mind running the Race Viewer again (i.e with no flicker) and check what driver it’s using in your case - details are written to the Java console on start-up. Remember that the Race Viewer is using the 14 May build of JOGL 1.1b04.
[/quote]
I have PMed you the log, but can’t see the driver mentioned.

[quote]Just curious: You mention GL version 4.14.10.3701? Is this maybe a typo? According to http://www.intel.com/support/graphics/sb/CS-009479.htm#845 the leading “4” indicates a Windows 95/98/NT driver, but you have Windows XP? Possibly, the OpenGL version numbers aren’t necessarily always the same as the Driver version numbers?
[/quote]
Its not a typo, its the driver provided by Dell. I briefly tried the latest w2k/xp Intel driver for this chipset which also ran fine (no flicker) for a day but then it failed catastrophically - would only boot up in safe mode due to display driver failure. Did a full restore using DriveImage7 and have been running with the original driver since then.

Hi

Daymark was running the old applet (pure Java, no OpenGL) version of the Digiturf race viewer, not the new JOGL version. This negates any observations made about the race viewer not flickering on his machine, while the demos were. My appologies - I should have made it clear that I was talking about the “Enhanced” viewer and not the “Standard” viewer.

I have had feedback from two users of the race viewer that are having the flickering problem:

User A has Intel 82845
User B has an ATI Radeon IGP 320m

Both have Windows XP.

sun.java2d.noddraw=true has no effect for either.

In both cases, the race viewer reports that it is picking up the Microsoft GDI Generic, Version 1.1.0 renderer, as described by Daymark.

Could be a pattern here: MS Renderer = Flicker, and it looks like it’s not limited to Intel hardware.

Kevin

Hi Kevin

Ooops!!! I said the (standard) Race Viewer needed a higher polygon count!!! ;D

The enhanced version looks awsome!

I ran the jnlp you sent me, and you guessed it - it flickers, and with the window maximized (1400x1050) I’m getting less than 1 frame/sec :-[

But unlike the old Race Viewer, the Java Console is not opening to display log output so I can’t confirm whether Intel or Microsoft driver is being used. The Java Console opens for ok for applets. Any ideas?

Hi Daymark,

To see the Java Console with Webstart 1.4.2, run the Webstart Application Manager (javaws.exe). Click on File - Preferences. Go to the Advanced tab. There you can check “Show Java Console”, and you can also log output to a specified file.

Kevin

As suspected, Microsoft’s OpenGL driver is being used:

Java Web Start 1.4.2_05 Console, started Fri Jul 09 10:54:24 BST 2004
Java 2 Runtime Environment: Version 1.4.2_05 by Sun Microsystems Inc.

RACE VIEWER: 4.0

OS:
Name: Windows XP
Architecture: x86
Version: 5.1

JAVA:
Runtime: Java™ 2 Runtime Environment, Standard Edition
Version: 1.4.2_05-b04
Vendor: Sun Microsystems Inc.

JOGL:
1.1.0-b04

OPENGL:
Vendor: Microsoft Corporation
Renderer: GDI Generic
Version: 1.1.0
GLU Version: 1.2.2.0 Microsoft Corporation

I’ve tested with my own apps and have gotten the same results:

Vendor: Microsoft Corporation
Renderer: GDI Generic

So how do we go about getting this fixed? Has anyone filed a bug about the Generic driver being selected?

If you are using windows and download jogl.jar and jogldll.zip from my site you can see a little debugging info. If you would then be kind enough to post the debug messages here I would appreciate it. The original JOGL used ChoosePixelFormat to get a valid pixel format from winodws. The current versions use wlgChoosePixelFormat which allows you to use FSAA and floating point framebuffers. Unfortunately for us ChoosePixelFormat will basically always return a pixelformat whether it has all the capabilities you asked for or not, which is why that version always seems to work for everyone, while wglChoosePixelFormat will give you a format that has all the capabilities you asked for or nothing at all.

Eeek.

C:\Development\Projects\jogl\nehe\lesson07>java Lesson07
!!! Initializing GLU extension address table
Using ATI workaround of dispatching display() on event thread
net.java.games.jogl.GLException: Unable to enumerate pixel formats of window using wglGetPixelFormatAttribivARB
at net.java.games.jogl.impl.windows.WindowsGLContext.choosePixelFormatAndCreateContext(WindowsGLContext.java:390)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.create(WindowsOnscreenGLContext.java:211)
at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(WindowsGLContext.java:133)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent
(WindowsOnscreenGLContext.java:110)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:254)
at net.java.games.jogl.GLCanvas.displayImpl(GLCanvas.java:208)
at net.java.games.jogl.GLCanvas.display(GLCanvas.java:75)
at net.java.games.jogl.Animator$1.run(Animator.java:107)
at java.lang.Thread.run(Unknown Source)

Please download JOGL.jar from the site again and run it again. It will fail but this time it will report an error number with the failure message. Hopefully it won’t be a zero otherwise I will be driven to drink. I assume you are not using the lesson7.jar from my site but if you are don’t.

A drink is sounding really good about now.

No, I’m using my own lesson07 that I originally wrote for the nehe tutorials last year.

C:\Development\Projects\jogl\nehe\lesson07>java Lesson07
!!! Initializing GLU extension address table
Using ATI workaround of dispatching display() on event thread
!!! Initializing OpenGL extension address table
wglChoosePixelFormatARB didn’t recommend a pixel format
net.java.games.jogl.GLException: Unable to enumerate pixel formats of window using wglGetPixelFormatAttribivARB: 0
at net.java.games.jogl.impl.windows.WindowsGLContext.choosePixelFormatAndCreateContext(WindowsGLContext.java:390)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.create(WindowsOnscreenGLContext.java:211)
at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(WindowsGLContext.java:133)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:110)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:254)
at net.java.games.jogl.GLCanvas.displayImpl(GLCanvas.java:208)
at net.java.games.jogl.GLCanvas.display(GLCanvas.java:75)
at net.java.games.jogl.Animator$1.run(Animator.java:107)
at java.lang.Thread.run(Unknown Source)

But here’s a bit of good news, maybe. I get the same error and stack trace in fullscreen, too. So it appears to be the same issue.