Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Posted
2004-12-23 08:07:29 » |
|
Folks, If anyone is bored enough, I wonder if you'd be good enough to try the following WebStart/performance test and let me know if it runs on your platform. It needs Java 1.5.0 and will run for exactly 2 minutes and then display a final performance figure in FPS. I'd be paticularly interested to see if it runs on Linux/Mac OK or anything with a 'lesser' video card - integrated Intel graphics etc. ( My Linux install suffers from the Web Start bug, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6195591 so I can't test this ) For reference, I see Win2000, Athlon 1800+, GeForce FX5200, 78fps Please don't resize the window if reporting performance numbers. Here's the URL: http://abraded.co.uk/jogl/kit2.jnlpSome of you may recognize this as a port of my old Java3D app from some time back. If it fails to run, I'd appreciate any diagnostics from the WebStart console Thanks Rob
|
|
|
|
|
Chman
Junior Member  
Nothing more that... Java games are cool !
|
 |
«
Reply #1 - Posted
2004-12-23 08:14:55 » |
|
Runs perfectly here (WinXP, Java 1.5)... But I only get 70 fps  AMD3000+ Radeon 9800Pro 1Gb DDR Chman
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #2 - Posted
2004-12-23 08:20:54 » |
|
Chman - thanks for that.
I've seen my stuff run slower on ATI cards than NVidia before, and never quite worked out why. My figure was with VSYNC off, BTW.
Rob
|
|
|
|
|
Games published by our own members! Check 'em out!
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #3 - Posted
2004-12-23 08:30:12 » |
|
Quick screen shot to let you know roughly what to expect ! 
|
|
|
|
|
nlmueng
|
 |
«
Reply #4 - Posted
2004-12-23 12:43:33 » |
|
Fails on my ATI Radeon 8500
Exception in thread "AWT-EventQueue-0" net.java.games.jogl.GLException: Method "glMultiDrawArrays" not available at net.java.games.jogl.impl.windows.WindowsGLImpl.glMultiDrawArrays(WindowsGLImpl.java:17954) at rob.sg.JOGLRenderer.drawTriangleStripArrayVBO(JOGLRenderer.java:394) at rob.sg.JOGLRenderer.drawTriangleStripArray(JOGLRenderer.java:243) at rob.sg.JOGLRenderer.drawGeometry(JOGLRenderer.java:229) at rob.sg.JOGLRenderer.drawShape(JOGLRenderer.java:204) at rob.sg.Renderer.renderBin(Renderer.java:128) at rob.sg.Renderer.render(Renderer.java:38) at rob.sg.SGCamera.frame(SGCamera.java:53) at rob.sg.JOGLCamera.display(JOGLCamera.java:128) at net.java.games.jogl.impl.GLDrawableHelper.display(GLDrawableHelper.java:74) at net.java.games.jogl.GLCanvas$DisplayAction.run(GLCanvas.java:221) at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:287) 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.GLCanvas.paint(GLCanvas.java:82) at sun.awt.RepaintArea.paintComponent(Unknown Source) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #5 - Posted
2004-12-23 13:00:33 » |
|
nlmueng,
Thanks - this is the sort of thing I'm trying to find.
I thought I was checking for this as an extension - obviously not though !
Thanks again, Rob
|
|
|
|
|
princec
|
 |
«
Reply #6 - Posted
2004-12-23 13:17:03 » |
|
58fps, Gf2Go. Seems about right. Cas 
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #7 - Posted
2004-12-23 13:17:43 » |
|
nlmueng,
I think I might have fixed this - I was assuming that anything that had vertex_buffer_object also had multi_draw_arrays.
Would you mind trying it again please ?
You should see either :
"Using MultiDrawArrays", or "NOT using MultiDrawArrays" in the java console output with the new version.
Thanks Rob
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #8 - Posted
2004-12-23 13:20:40 » |
|
58fps, Gf2Go. Seems about right. Cas - many thanks seems pretty good to me too. Rob
|
|
|
|
|
nlmueng
|
 |
«
Reply #9 - Posted
2004-12-23 13:29:16 » |
|
it says:
Using MultiDrawArrays
and i still get:
Exception in thread "AWT-EventQueue-0" net.java.games.jogl.GLException: Method "glMultiDrawArrays" not available at net.java.games.jogl.impl.windows.WindowsGLImpl.glMultiDrawArrays(WindowsGLImpl.java:17954) at rob.sg.JOGLRenderer.drawTriangleStripArrayVBO(JOGLRenderer.java:397) at rob.sg.JOGLRenderer.drawTriangleStripArray(JOGLRenderer.java:253) at rob.sg.JOGLRenderer.drawGeometry(JOGLRenderer.java:239) at rob.sg.JOGLRenderer.drawShape(JOGLRenderer.java:214) at rob.sg.Renderer.renderBin(Renderer.java:128) at rob.sg.Renderer.render(Renderer.java:38) at rob.sg.SGCamera.frame(SGCamera.java:53) at rob.sg.JOGLCamera.display(JOGLCamera.java:128) at net.java.games.jogl.impl.GLDrawableHelper.display(GLDrawableHelper.java:74) at net.java.games.jogl.GLCanvas$DisplayAction.run(GLCanvas.java:221) at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:287) 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.GLCanvas.paint(GLCanvas.java:82) at sun.awt.RepaintArea.paintComponent(Unknown Source) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
I have the latest ATI drivers
|
|
|
|
|
Games published by our own members! Check 'em out!
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #10 - Posted
2004-12-23 13:41:24 » |
|
nlmueng, Thanks for trying this again - it leaves me puzzled however. My code does: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| if (gl.isExtensionAvailable("GL_EXT_multi_draw_arrays")) { useMDA = true; System.out.println("Using MultiDrawArrays"); } else { useMDA = false; System.out.println("NOT using MultiDrawArrays"); } ... if (useMDA) { gl.glMultiDrawArrays( gl.GL_TRIANGLE_STRIP, tsa.getStripOffsets(), stripVertexCounts, stripVertexCounts.length); } |
You are seeing the *first* 'println' which leaves me baffled as to why the call the glMultiDrawArrays (Which is indeed line 397) is getting this exception given the test for the extension passed. Can anyone spead any light on this ? Puzzled, Rob
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #11 - Posted
2004-12-23 13:46:28 » |
|
Ahh - maybe the call should be to glMultiDrawArraysEXT
Can you try it now ?
Thanks Rob
|
|
|
|
|
nlmueng
|
 |
«
Reply #12 - Posted
2004-12-23 13:58:21 » |
|
It worked,
70.747025fps P4 3.0 1 GB ram ATI Radeon 8500
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #13 - Posted
2004-12-23 14:43:24 » |
|
It worked Great - thanks for bearing with me on this. Rob
|
|
|
|
|
princec
|
 |
«
Reply #14 - Posted
2004-12-23 15:18:20 » |
|
A trick I did was to create a wrapper GL class that delegated calls to the appropriate method depending on the available extensions / GL version. E.g. glDrawRangeElements calls either glDrawRangeElementsEXT or glDrawRangeElements as appropriate. And vice-versa. Saves me from making this kind of slip-up, which otherwise afflicts me often. Cas 
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #15 - Posted
2004-12-23 15:33:54 » |
|
Cas,
This sounds a nice idea.
(Unfortunately in this particular case, it was my incompetence rather than carelessness that caused this, however your suggestion sounds good)
Rob
|
|
|
|
|
Ken Russell
|
 |
«
Reply #16 - Posted
2004-12-23 17:18:15 » |
|
Demo runs smoothly on an NVidia Quadro FX Go700 (mobile chip) with 67.42 drivers. However, it looks like none of the textures are showing up. The polygons are smoothly shaded in shades of white, gray, and some tan areas for the lawns.
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #17 - Posted
2004-12-24 17:53:49 » |
|
Ken,
Thanks - I suspect my texture compression code is the most likely suspect - I'll investigate after the holiday.
Thanks again. Rob
|
|
|
|
|
puf
Senior Newbie 
Java games rock!
|
 |
«
Reply #18 - Posted
2004-12-27 05:42:42 » |
|
Just ran it at the office to see what it does here. The results are not pretty: Win2003, P4 2.4GHz, Intel Extreme driver version 6.13.1.3259, 3.1fps
|
|
|
|
|
cyberyoyo
Junior Member  
Java games funk
|
 |
«
Reply #19 - Posted
2004-12-28 22:24:56 » |
|
Hi, I just ran it with the following config: -amd Athlon 2600+ -win98 -GeForce4 ti4200
I get 82.557 FPS
It doesn't run fullscreen, only windowed,is that normal?
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #20 - Posted
2004-12-30 07:01:15 » |
|
Just ran it at the office to see what it does here. The results are not pretty: Win2003, P4 2.4GHz, Intel Extreme driver version 6.13.1.3259, 3.1fps puf - thanks for that. I understand the poor performance, as the infrastructure wil drop back to naive rendering if VBOs are not available. When you say things were 'not pretty' does this mean that the image quality looked like if was corrupted also, or was it just the speed that was the issue ? Rob
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #21 - Posted
2004-12-30 07:04:15 » |
|
It doesn't run fullscreen, only windowed, is that normal? Yes - personally I don't much like full screen exclusive mode for the applications I'm playing with. Thanks for the figures, Rob
|
|
|
|
|
puf
Senior Newbie 
Java games rock!
|
 |
«
Reply #22 - Posted
2004-12-30 07:14:13 » |
|
Rob, I actually meant that the performance was not pretty. The rendering result itself looks ok.
Yesterday I did some further investigation as to why performance would be this bad and found out that on Windows 2003 Server it uses software rendering by default. That probably explain the crappy performance I've been getting.
I switched video rendering to using full hardware acceleration and most apps now perform much better.
With your kit2 app however, I only see the initial frame being rendered. After that the image remains static, even though the status bar keeps getting updated. The figures in the status bar now actually show more reasonable performance (26fps). But it would be nice if I could actually see some of those frames being rendered. :-/
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #23 - Posted
2004-12-30 08:20:27 » |
|
puf,
Thanks for the update - unfortunately I'm baffled by the lack of anything other than the first frame. The fact that the status bar is getting updated indicates that I'm in my normal rendering loop, and think that I'm rendering frames OK.
Puzzled, Rob
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #24 - Posted
2004-12-30 08:26:53 » |
|
Ken Russell wrote: Demo runs smoothly on an NVidia Quadro FX Go700 (mobile chip) with 67.42 drivers. However, it looks like none of the textures are showing up. The polygons are smoothly shaded in shades of white, gray, and some tan areas for the lawns. Ken - I'm hoping that I might have fixed this problem. I was checking GL_ARB_texture_compression but using GL_COMPRESSED_RGB_S3TC_DXT1_EXT. I'm now checking both GL_ARB_texture_compression and GL_EXT_texture_compression_s3tc and hopefully setting the texture internal format appropriately. If you've got time to give this another go, I'd appreciate it. You should now see a number of printlns on the Java console saying which iformat is being used. Rob
|
|
|
|
|
puf
Senior Newbie 
Java games rock!
|
 |
«
Reply #25 - Posted
2005-01-03 05:29:27 » |
|
unfortunately I'm baffled by the lack of anything other than the first frame. The fact that the status bar is getting updated indicates that I'm in my normal rendering loop, and think that I'm rendering frames OK.
Well, there's a pretty good chance that it is something in my local settings. Running on a server edition of Windows is guaranteed to take you through all kinds of interesting option dialogs before you get you 3d apps working with any kind of frame rate. :-)
|
|
|
|
|
Ken Russell
|
 |
«
Reply #26 - Posted
2005-01-03 20:30:56 » |
|
I was checking GL_ARB_texture_compression but using GL_COMPRESSED_RGB_S3TC_DXT1_EXT. I'm now checking both GL_ARB_texture_compression and GL_EXT_texture_compression_s3tc and hopefully setting the texture internal format appropriately. Unfortunately still no textures on my Quadro FX Go700. The new printlns report that GL_COMPRESSED_RGB_S3TC_DXT1_EXT compression is being used. The demo runs with textures on my Radeon 9800 (Catalyst version 4.9; I should upgrade) though slowly -- about 10 FPS when all of the geometry (in particular the houses) is in view, though it speeds up considerably if the camera is pointed up at the lights or down at the road.
|
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #27 - Posted
2005-01-04 07:26:27 » |
|
Ken,
Thanks for the info. It leaves me puzzled I'm afraid, as I don't understand why your Quadro FX Go700 is behaving differently to my FX5200. I'm now pretty confident in my texture / texture compression code.
I also don't quite understand why things are so slow on your Radeon unless it is the drivers, given that chman reported 70fps on a similar card. I've enabled anisotropic filtering since this figure was reported, but I wouldn't expect that to account for such a difference.
Anyhow, this all just goes to prove that it's non-trivial to write an infrastructure that works well on more than one hardware configuration, which is what the point of starting this thread was, so it's all good information.
Thanks again, Rob
|
|
|
|
|
mlk
|
 |
«
Reply #28 - Posted
2005-01-04 08:05:55 » |
|
Win2K, C455, 128m, Voodoo 3 3000 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:412) at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.create(WindowsOnscreenGLContext.java:211) at net.java.games.jogl.impl.windows.WindowsGLContext.makeCurrent(WindowsGLContext.java:135) at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:110) at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:250) at net.java.games.jogl.GLCanvas.reshape(GLCanvas.java:112) at java.awt.Component.setBounds(Unknown Source) at java.awt.BorderLayout.layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at java.awt.Window.pack(Unknown Source) at rob.kit2.Start.go(Start.java:169) at rob.kit2.Start.main(Start.java:719) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.javaws.Launcher.executeApplication(Unknown Source) at com.sun.javaws.Launcher.executeMainClass(Unknown Source) at com.sun.javaws.Launcher.continueLaunch(Unknown Source) at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source) at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
:-/
|
|
|
|
Rob Nugent
Junior Member  
May contain nuts
|
 |
«
Reply #29 - Posted
2005-01-04 11:37:27 » |
|
Ken Russell wrote: Unfortunately still no textures on my Quadro FX Go700 Ken - I just tried running with Mustang (1.6.0-ea-b16) and get very similar symtoms to those you describe - grey houses, very little colour except in the lawns. My previous Mustang build was OK. I've been running with 1.5.0-b64 which is OK - I'm about to try 1.5.0 update 1 - maybe that's what's causing it. Rob
|
|
|
|
|
|