- Oct 9, 1999
- 9,140
- 67
- 91
I know that DooM3 topics are taking over the video forum, but I figured it would be worthwhile to have a thread dedicated to *why* D3 is doing what its doing instead of time and time again posting about *what* the game is doing for users. I've run over a hundred benches at this point and have made some notes.
General performance issues- Obviously everyone knows the game likes a lot of stencil fill and boards with high 'zixel' fill rates are dominating in terms of performance. The game also likes boards with a lot of RAM, and there are some issues there.
Ultra settings do nothing on certain boards some of the time at least, ie- you are still using High Quality settings regardless of what the in game options state. I don't have enough parts here to isolate when or why this happens exactly, but it is easily repeatable on my R9800Pro that setting the game to Ultra does absolutely nothing under all of the settings I have tested so far.
Anti-Aliasing settings in game control both anisotropic filtering and AA- forcing either in the control panel will override both settings in game- ie if you force 4x AF in the control panel and no AA you get 4x AF and no AA in game even if you have AA set for 4x.
We need more timedemos. The particular area from very early in the game that Timedemo1 uses isn't painting an accurate picture of overall game performance nor is it showing us the proper differences between the boards. The texture load for the particular area utilized in Timedemo1 is relatively low compared to other areas in the game and while we see the 128MB and 256MB parts performing very close overall for that bench, in game performance on other levels is going to show a significantly larger difference and will likely result in the 128MB parts being unplayable in certain areas, with the 256MB parts playing without a hiccup even though the parts may show identical results in the benches we are reporting here.
Visual quality issues. First off is the texture quality being less then optimal. One of the major issues we are seeing in terms of texture quality is that the gamma for the game needs to be cranked up significantly higher then what we have seen, to the best of my memory, ever. This is washing out a lot of textures that should be looking quite a bit better if the game wasn't so dark.
On the general issue of the game being dark- id didn't include any infinite lighting source in to the game engine likely for performance reasons. The NV2x line of hardware for example, would require an additional rendering pass if they added in an infinite light source which would rectify the too dark problem but obviously lead to performance issues, unless id could write it in such a way that it would be ignored for the 'shadowing pass'(I'm excluding the need for 'duct tape' as that is a gameplay issue).
Aliasing in the game certainly is very easily noticeable. Now, I'm playing on a 22" monitor which is going to make it more obvious- but it is screaming loud on my system and even cranking the res up to 1600x1200 it is still obvious(particularly at the slideshow speeds I get at those settings). MSAA does help out on the edge aliasing, but D3 needs SSAA to handle the aliasing in game properly. With the lighting model they are using combined with the Dot3 everywhere we end up with fairly significant texture type aliasing that can't be dealt with properly by either MSAA or anisotropic filtering(although it may be possible that the NV2X architecture may handle it a bit better then the newer gen parts, will have to post back on that when I get to test it out a bit more with my Ti4200). Because of the type of rendering the aliasing present in the game frequently appears to be edge aliasing- but it isn't and MSAA will do nothing to clear it up. Mixed modes on the nV parts should help here, although a pure SSAA mode would be optimal(not that any of the boards have the power to handle it, but that's what it will take).
Although MSAA doesn't clear up the aliasing entirely, it does help reduce edge aliasing which I have found worth while in this game(again, 22" here so ymmv). The performance hit due to MSAA should be relatively lower in D3 then it is in other titles for slightly older hardware(pre R420 ATi and pre NV30 NV)- particularly newer game engines such as FarCry and the looming HL2 engine. The amount of rendering time that relates to MSAA is lower in D3 then it is in older engines and as such the performance due to AA is lower then in many titles, although there is still an appreciable hit it should be masked on boards with enough RAM to the point where it is fairly negligible for most of the game(although exactly how much RAM that will be will varry heavily depending on where you are in the game). For newer hardware enabling MSAA takes away 'zixel' fill so the performance hit will likely be comparable to normal levels.
At this point I'm thinking NV50/R500 will be ideal in terms of performance to push this game, high res with SSAA and AF(hopefully they will all allow users to have SSAA by that point in time). The engine itself is capable of pushing out slightly older CGI quality visuals in real time if we have the hardware capable of handling the load. I'll likely have some more later, still have to run a couple hundred more benches and gather up some alternative hardware to do more testing.
General performance issues- Obviously everyone knows the game likes a lot of stencil fill and boards with high 'zixel' fill rates are dominating in terms of performance. The game also likes boards with a lot of RAM, and there are some issues there.
Ultra settings do nothing on certain boards some of the time at least, ie- you are still using High Quality settings regardless of what the in game options state. I don't have enough parts here to isolate when or why this happens exactly, but it is easily repeatable on my R9800Pro that setting the game to Ultra does absolutely nothing under all of the settings I have tested so far.
Anti-Aliasing settings in game control both anisotropic filtering and AA- forcing either in the control panel will override both settings in game- ie if you force 4x AF in the control panel and no AA you get 4x AF and no AA in game even if you have AA set for 4x.
We need more timedemos. The particular area from very early in the game that Timedemo1 uses isn't painting an accurate picture of overall game performance nor is it showing us the proper differences between the boards. The texture load for the particular area utilized in Timedemo1 is relatively low compared to other areas in the game and while we see the 128MB and 256MB parts performing very close overall for that bench, in game performance on other levels is going to show a significantly larger difference and will likely result in the 128MB parts being unplayable in certain areas, with the 256MB parts playing without a hiccup even though the parts may show identical results in the benches we are reporting here.
Visual quality issues. First off is the texture quality being less then optimal. One of the major issues we are seeing in terms of texture quality is that the gamma for the game needs to be cranked up significantly higher then what we have seen, to the best of my memory, ever. This is washing out a lot of textures that should be looking quite a bit better if the game wasn't so dark.
On the general issue of the game being dark- id didn't include any infinite lighting source in to the game engine likely for performance reasons. The NV2x line of hardware for example, would require an additional rendering pass if they added in an infinite light source which would rectify the too dark problem but obviously lead to performance issues, unless id could write it in such a way that it would be ignored for the 'shadowing pass'(I'm excluding the need for 'duct tape' as that is a gameplay issue).
Aliasing in the game certainly is very easily noticeable. Now, I'm playing on a 22" monitor which is going to make it more obvious- but it is screaming loud on my system and even cranking the res up to 1600x1200 it is still obvious(particularly at the slideshow speeds I get at those settings). MSAA does help out on the edge aliasing, but D3 needs SSAA to handle the aliasing in game properly. With the lighting model they are using combined with the Dot3 everywhere we end up with fairly significant texture type aliasing that can't be dealt with properly by either MSAA or anisotropic filtering(although it may be possible that the NV2X architecture may handle it a bit better then the newer gen parts, will have to post back on that when I get to test it out a bit more with my Ti4200). Because of the type of rendering the aliasing present in the game frequently appears to be edge aliasing- but it isn't and MSAA will do nothing to clear it up. Mixed modes on the nV parts should help here, although a pure SSAA mode would be optimal(not that any of the boards have the power to handle it, but that's what it will take).
Although MSAA doesn't clear up the aliasing entirely, it does help reduce edge aliasing which I have found worth while in this game(again, 22" here so ymmv). The performance hit due to MSAA should be relatively lower in D3 then it is in other titles for slightly older hardware(pre R420 ATi and pre NV30 NV)- particularly newer game engines such as FarCry and the looming HL2 engine. The amount of rendering time that relates to MSAA is lower in D3 then it is in older engines and as such the performance due to AA is lower then in many titles, although there is still an appreciable hit it should be masked on boards with enough RAM to the point where it is fairly negligible for most of the game(although exactly how much RAM that will be will varry heavily depending on where you are in the game). For newer hardware enabling MSAA takes away 'zixel' fill so the performance hit will likely be comparable to normal levels.
At this point I'm thinking NV50/R500 will be ideal in terms of performance to push this game, high res with SSAA and AF(hopefully they will all allow users to have SSAA by that point in time). The engine itself is capable of pushing out slightly older CGI quality visuals in real time if we have the hardware capable of handling the load. I'll likely have some more later, still have to run a couple hundred more benches and gather up some alternative hardware to do more testing.