So I bought a laptop 2nd hand - a Philips Freevents X52. It features the Intel GA-950 DX9 (SM2.0) graphics chip (Software vertex processing, 4 pixel shader pipelines), an Intel Dual Core T2300 (1.7GHz), 80GB SATA hard disk and 1GB DDR2 memory. That's almost better processing power than my desktop computer! I got the laptop at a real bargain price off eBay as the seller really didn't make any effort at all with a 2-line description and a title that didn't mention the make, product line or model number. It was obvious when I received it that it had been given a good thrashing but I hadn't had chance to really clean it up. The screen was smudged, the cover was splatted with sticky label glue and missing several letters on the bezel. Also - more annoyingly - the keyboard was completely fudged with several keys just mysteriously not working (Like control, F10, F11)! To cap all that off, there is no documentation anywhere on the laptop - like say a maintenance manual. Anyway I decided to gut the thing today and figure out why it was broken and after some disassembly I found out how to remove the keyboard. It turned out that someone had tried doing a bit of servicing on it in the past. So I managed to fix the keyboard up and it's easily good enough now for me to work with which is the main thing.
The laptop represents an important investment to me. The GA-950 whilst being a good graphics chip in many respects is absolutely rubbish compared to the Geforce7 on my desktop. In a nutshell if I can make all of my graphics code compatible with this graphics chip then - theoretically - it should work on pretty much anything! Also my desktop doesn't have a dual core processor, and since I'm implementing a multithreaded game engine this setup gives me chance to tap into the extra processing power recent CPU's offer. Pretty much all the performance related articles I've been reading recently are all saying the same thing - batch your draw calls and the majority DX9 games were all CPU bound.
CPU bound? That's bad.
I get the general feeling that a lot of engine programmers invest heavily in GPU optimisation, but to be honest if your code is CPU bound then you need to think about some of the higher level algorithms you're using. I've been monitoring CPU performance of the IS3 engine quite carefully and so far it's all fine but I haven't even started on some of the more processor intensive algorithms.
Anyway, coming back to IS3 again. The 2D drawing routines are all working great at the moment but what I really need to think about now is how to lower the CPU requirements the GUI imposes and also I need to rework the texture management system completely. My next big addition to the engine will be virtualised textures like in the idTech5 engine.
I'd better get back to the grindstone!