3DMark03 was also advertised as a DirectX9 benchmark, and yet only one of the four game tests required DirectX9, with two using DirectX8.1 and one DirectX7 features. Will 3DMark04 remove the legacy tests and target DirectX9 only? If it is DirectX9 only will you be requiring Shader Model 3.0 in any of the game tests, given the previous sentiment has been that you'll require the newer features when at least two vendors are supporting it, or have signalled intent to within close proximity of release?

Nick: The next 3DMark will require a fully PS2.0 capable graphics card for all game tests. None of the game tests will use shaders below version 2.0, and the benchmark is really mainly targeted at the second generation of DX9 compliant cards. Of course users with older/first generation DX9 hardware can run the benchmark and get reliable results, but the tests loads aren’t really designed for that generation. I want to remind all readers that 3DMark is a benchmark, and is NOT optimized in the same fashion as games are. There are no lighter code paths for value and legacy hardware, all systems produce the same rendering. Also, 15 fps for example is a too low frame rate for enjoyable game play, but it is quite enough for producing comparable 3D performance results. 3DMark thereby measures quite well also below playable frame rates. When game developers are developing a game, their main focus (performance-wise) is to offer enjoyable game play for all gamers. Our focus is to stress the hardware, and not to make the benchmark user necessarily experience a smooth run. Also a point to remember is that I doubt any game so far released, or to be released this year, uses similar shaders & amount of lights & shadows to the same extent as the next 3DMark does. The amount of polygons on screen and use of dynamic lights & shadows is on a totally different level than what gamers have seen so far.

None of the tests in the next 3DMark will actually require SM3.0, but if the user has a graphics card capable of doing SM3.0, it will be used by default. There is actually a new option in the settings, from where the user can choose which shader model will be used (2_0, 2_a, 2_b or 3_0). I think that widens the use of the next 3DMark even more as you can for example compare your graphics cards SM2.0 and SM3.0 performance.

We cannot reveal any features of upcoming hardware since that information is all under NDA.

It been mentioned that in order to support multiple shader models (PS_2_0, PS_2_a, PS_2_b, PS_3_0) you will be utilizing longer shaders in some of the game tests, but then compiling these to the optimal HLSL shader profile available for the particular board that its operating on. Is this the case and if so how is this achieved? If this is the case, presumably all the shaders will be written via HLSL rather than hand written as in the 3DMark03?

Nick: The next 3DMark will use a completely new 3D engine, which dynamically builds HLSL shaders. The shaders are dynamically built and runtime compiled using the most optimal target for the hardware in use. We strongly believe that this is a structure future game-engines will be using because of its flexibility. It goes without saying that the compilations produce the exact same rendering, no matter which target. This is an absolute must for enabling objective performance comparisons.

Patric: Hand written shaders have their benefits. They can be highly optimized for some certain hardware. Then again, a game using shaders for all or most materials will probably have quite a bunch of them. Manually typing hundreds of different shaders optimized for different hardware makes no sense for a developer. Therefore the HLSL model is a great thing. Write a shader that is easy to understand and modify, which is then automatically optimized for the installed hardware. Or better yet, use some dynamic shader generation implementation and create the needed huge amount of shaders even more easily.