ATI Hierarchical-Z issue with Doom 3

The lack of a performance difference whether or not r_useDepthBoundsTest is enabled may also be due to other limits deciding performance. For example, if on today's CPU's it pretty much always takes longer to calculate the shadow hulls than it does to render them, then r_useDepthBoundsTest will do nothing for you (I'm sure this is the case on my machine: Athlon XP 2000+, GeForce 6800).

Similarly, the fillrate that the shadows take up is probably pretty small in relation to the fillrate on actually shading the scene.

So, the questions now are:
1. If r_useDepthBoundsTest isn't currently useful, will it ever be? Could things like more lights or deferred shading make it more useful? Or perhaps faster CPUs?

2. What could be causing the massive performance difference between ATI's cards and nVidia's cards on a per-clock basis in this game? My first guess would be inefficiencies with respect to shadow volume rendering, but in the past I had connected this to the use of FSAA, while in DOOM3 ATI lags seriously even without FSAA.
 
Chalnoth said:
1. If r_useDepthBoundsTest isn't currently useful, will it ever be? Could things like more lights or deferred shading make it more useful? Or perhaps faster CPUs?
If a game uses shadow volumes for outdoor scenes, then it should help significantly. There, reasonable bounds of the shadow would likely exclude a large part of the z-buffer.

BTW, could you please run gl_ext_reme with and without AA for us?
 
Mintmaster: I just did that, thanks for the idea :) I'm on a 6800GT at 410/1000 btw. The tests were run at 1280x1024 60hz, V-Sync disabled, 32bpp.
www.notforidiots.com/0AA.txt
www.notforidiots.com/2AA.txt
www.notforidiots.com/4AA.txt

Key numbers for Doom 3 probably are:
0x AA: Overdraw factor 3, front to back: 1902.61 fps
2x AA: Overdraw factor 3, front to back: 1749.25 fps
4x AA: Overdraw factor 3, front to back: 1567.55 fps
Seems like that could be quite an advantage...

Uttar
 
its just funny that id picks a rendernign feature that they had to have known would be bad for all radeon cards performance wise.

no one except those on the inside know if id actually did this to purposly cripple ati, but regardless im sure they could have programmed for early z in a way that would better suit both ati and nvidia.
 
hovz said:
no one except those on the inside know if id actually did this to purposly cripple ati

Are there actually people that seriously believe this? :)
 
hovz said:
its just funny that id picks a rendernign feature that they had to have known would be bad for all radeon cards performance wise.
Let's see... when did Carmack "invent" his stencil shadow algorithm and make it the foundation of his next engine?

Would alternative approaches result in the same quality, effect, and better performance on ATI hardware? Is Doom3 unplayable on ATI hardware?
 
Xmas said:
hovz said:
its just funny that id picks a rendernign feature that they had to have known would be bad for all radeon cards performance wise.
Let's see... when did Carmack "invent" his stencil shadow algorithm and make it the foundation of his next engine?

Would alternative approaches result in the same quality, effect, and better performance on ATI hardware? Is Doom3 unplayable on ATI hardware?

Sometime after quake 3 i would believe. mostl ikely 2000 . Which is when the radeon came out with hyper z . So they were made at around the same time.

If its true and doom3 does break ati's hyper z then its poor planing on both of thier parts . Not just ati's and not just id's .

Of course i find it odd that they didn't work with each other to fix the problems
 
jvd said:
Of course i find it odd that they didn't work with each other to fix the problems

Maybe they did, and this is the best that they could do.
 
jvd said:
Florin said:
jvd said:
Of course i find it odd that they didn't work with each other to fix the problems

Maybe they did, and this is the best that they could do.

mabye.

But I would expect better from carmack than that .

But the game runs great on ATI cards. Ok, it runs a bit better on other cards but I'm not sure if that could be called a 'problem'.
 
But the game runs great on ATI cards. Ok, it runs a bit better on other cards but I'm not sure if that could be called a 'problem'.

Right. Which is why I"m not complaining. I'm just stating.

If the way doom 3 renders something has a problem with ati's hyper z then why would ati or id continue on with it.

Esp id as it seems to have the only game that fubars ati's hyper z .

Why would they not find a more ideal solution to it.

That is all I have to say.
 
jvd said:
Right. Which is why I"m not complaining. I'm just stating.

If the way doom 3 renders something has a problem with ati's hyper z then why would ati or id continue on with it.

Esp id as it seems to have the only game that fubars ati's hyper z .

Why would they not find a more ideal solution to it.

That is all I have to say.
The older ATI cards run it just fine, compared to their competeting cards. It's just the X800 series which is significantly behind. ATI knew quite well which rendering technique Doom3 will use. They did some changes to the X800 core (e.g. I think they added two-sided stencil, right?). So why didn't they add/change something to make sure that Hyper-Z works with Doom3's rendering method? For me it's ATI's own guilt.
 
The older ATI cards run it just fine, compared to their competeting cards. It's just the X800 series which is significantly behind. ATI knew quite well which rendering technique Doom3 will use. They did some changes to the X800 core (e.g. I think they added two-sided stencil, right?). So why didn't they add/change something to make sure that Hyper-Z works with Doom3's rendering method? For me it's ATI's own guilt.

That is because the older radeons have many advantages over thier counter parts .


the r200 had p.s 1.4 and thus was able to have lower passes than the geforce 3 or 4 . which is why it puts up decent numbers against them.

The r300 had a much better core all around than the nv30.

The r420 and nv40 are more evenly matched.

Thus the reasons for the older radeons to perform equaly is negatied because of the nv40s being as good as the x00s . Then add in the fact of the problems with doom 3 and hyper z and you get the current situation where the x800s don't perform equaly to thier nvidia counter parts.

Thus i put the blame on both of them.

As id didn't have to break hyper z and ati could have changed things too.
 
jvd said:
id didn't have to break hyper z
Hmmm... Are you really qualified to say that? Are you a programmer knowing Doom3's rendering technique inside out? Do you know a better way how they could have done it?
 
madshi said:
jvd said:
id didn't have to break hyper z
Hmmm... Are you really qualified to say that? Are you a programmer knowing Doom3's rendering technique inside out? Do you know a better way how they could have done it?

There are many diffrent ways to do the same thing with pc hardware .

aparently id picked the one that was bad for ati's hardware .
 
But it's all relative.

Would you have been happier if the rendering path was slower on all hardware, but made ATI's hardware look better?

Carmack clearly made a number of decisions, that affect performance in a number of ways, without trying all of them you can't know what the tradeoffs were.

The Z prepass in and of itself might be enough to make the difference, and it could just be "Carmacks reverse" that's the issue.

We don't know, abd speculating that Carmack deliberatly crippled ATI hardware is a bit tin foil hat like IMO.
 
Back
Top