Tuesday, June 9, 2009

The Need for Speed

Brief summary: DirectQ has been developed on Intel hardware, primarily because it's a good lowest common denominator so far as performance benchmarking is concerned. If it runs well on Intel, it will likely run well on anything; seems to make sense.

The benchmark of choice is the "classic" timedemo demo1. Why? It's the first thing you see when you run Quake, and it's a good real world performance test; not too much of everything, but just enough to push the system a little.

Now, I'm currently getting about 106 FPS on it. Pretty good all things considered, but the problem is that I know the engine is capable of hitting 120 FPS without too much modification and with no visual degradation.

Why push the speed more? Simple reason is that extra speed in normal operation will translate into headroom for sexy effects for those who want them.

So the real problem is - and once again we're back to my old favourite complaint - while I could set things up so that I hit closer to that 120 FPS figure, and while I know exactly what needs to be done to get there, Microsoft's documentation is sadly lacking in providing me with the single last crucial bit of info I need in order to do it. And so we enter the trial and error cycle, and run the risk of making a mess in the process.

One of Microsoft's developers (something old, something new, etc) likes to harp on a bit about people doing the wrong thing in Windows programming. However - and this isn't just D3D, it's endemic across their documentation - doing the right thing involves pulling together info from multiple disparate sources, some of which have no apparent logical connections between them, then standing back and taking in the bigger picture. You have to do all of this yourself, including making guesses at what those sources might be, and heaven help you if you miss one.

Would it really hurt to provide that one last extra sentence sometimes?

0 comments: