Shadow Mapping FPS Woes - Pos. ATI Driver issue

evening all, i’ve a slightly vexing issue with shadow mapping in general.

I’m trying to track down if this problem is a symptom of drivers, hardware or both.

I’ve got a X800XT PE running the Cat5.3 driver set, now when I run the shadow mapping code from Pauls Projects (OpenGL Shadow Mapping Tutorial - Paul's Projects) I get a mind blowing 4fps out of it.

I’ve tested it on a 9800xt running the Cat4.9 drivers and it gives fps up in the couple of hundreds, two other people have tested it, one got fps in the mid 100s and is reporting a driver version of 6.14.10.6517 on his X300 and the other has a X800XT and is also getting around 4fps.

So, in an effort to track down if this is a driver or hardware thing I was wondering if a few people could run the test program and report back the fps;
clicky

I’m mostly intrested in ATI cards/driver versions to work this out, coz if indeed it is a driver thing someone has REALLY dropped the ball somewhere (my main suspect is the glCopySubTex() call for pulling the depth details into a texture)…

edit: yeah, as zeckensack has done below, which control panel version might be handy as well, i’m using the CCC edition

640 fps
Radeon 9800Pro
Catalyst 5.3 (CP version) at defaults
Athlon 64 3200+
VIA K8T800Pro
Windows 2000 Pro SP4

750 fps (after forcing vsync off, app. controlled was vsyncing)
Geforce 6800le
Forceware 71.84 (quality defaults)
Athlon 64 3200+
windows 2000 pro sp4

840 FPS
GeForce 6800 NU @ 360/800
AMD XP 1.92 GHZ
768 Ram

803 FPS (after disabling VSync)
GeForce 6600GT PCIExpress
ForceWare 71.84 (quality default -vsync)
Athlon64 3200+

320 FPS (no VSync) (anyone less than this :wink: )
GeForce 4 Ti 4200
ForceWare 71.90
P4 2.2

5 fps

Athlon 64 3500+
Radeon X850 XT
Win XP Pro
Catalyst 5.2

530 FPS
Radeon 9700 Pro
Catalyst 5.3
Pentium 4 2.66 Ghz
Windows XP Pro

618 fps
Geforce 5900XT
Forceware 61.77
Athlon 2600+

238 fps / 415 fps
Radeon 9500 / Radeon 9500 + 9700 hack
Cat 5.3
Athlon 1000

6.42 fps Radeon Mobility 9800 Driver version 6.14.10.6517

Originally posted by azcoder:
6.42 fps Radeon Mobility 9800 Driver version 6.14.10.6517

Originally posted by Ysaneya:
[b]5 fps

Athlon 64 3500+
Radeon X850 XT
Win XP Pro
Catalyst 5.2[/b]
Now, its little blips like those two, specifically the second one as its basically the same chipset as mine, which makes me think someone at ATI driver central has really dropped the ball… the first one I cant explain, but it doesnt look that good either.

Keep the reports coming, the NV ones are handy as a comparison thing, if Humus doesnt comment here before I get a chance to poke devrel about it all feedback will be handy :slight_smile:

6.4 fps
X800 Pro
Catalyst 5.3 CP
Barton 3200+
WinXP

Try to recompile the application using ‘glCopyTexImage2D’ for copying the shadow map back to the texture instead of glCopyTexSub-.

I had problems with glCopyTexSub-. (tracked down with GLIntercept) which returned invalid operation, or slow behaviour).

I suggest also to support the ‘NV_render_depth_texture’ extension if available and use a PBuffer.

Shadow mapping looks much greater on Geforce3.

Alas, the equivalent function on ATI is not available, simply the Radeon architecture doesn’t support it (hope it will be in the R520, at last).

The crazy thing is, on older hardware (9800s and below) and apprently the X300 the code works fine, heck going from a 9800xt to an X800XT is what made me notice (well, initally I thought it was my fault as I’d changed something else, talk about a waste of two days), it just seems to be something breaking in the X800 series as the few ATI results above show.

I knew about the other methods, but as you point out thats not much use on ATI hardware anyways. (infact, I was doing a pack to RGBA and extracting in a fragment shader which is fine for my target hardware of cards with GLSL support)

Have you tried :

http://www.delphi3d.net/download/shadowmap.zip

it’s another shadow map program using the plain GL1.4 implementation. There is a fps counter on it. Does it run slow ?

errm, are you use that is a plain GL1.4 impl? Coz it totally blew up on me with an access violation and two nulls, so i’m suspecting an NV extension in use…

the demo from delphi3d uses GL_ARB_multitexture, GL_ARB_depth_texture and GL_ARB_shadow.

You needs GLUT32.dll and it works on an ATI 9800 (no NV specific code)

1262 fps
6800U
FW 76.43
P4 2.8
WinXP SP2

yooyo

Originally posted by execom_rt:
[b]the demo from delphi3d uses GL_ARB_multitexture, GL_ARB_depth_texture and GL_ARB_shadow.

You needs GLUT32.dll and it works on an ATI 9800 (no NV specific code)[/b]
hmmm i’m not convinced you got the right demo there;

  • its short an fps counter
  • a quick look at the source doesnt show it using any of those functions at all

and as fun as your replies are, they dont address the main issue which is it looks like someone, somewhere, has dropped the ball with copying to depth textures from the framebuffer.

Sorry, i was linking the wrong file
it’s shadowmap.zip, not shadows.zip :wink:

Shadowmap

Hope it will work. it is using
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 0, 0, S_SIZE, S_SIZE, 0);
In Main.pas, line 104, which is different of Paul’s Project which is using glCopyTexSub.