Yeah, it’s starting to look a little funkier. Without getting into too much detail (which you can read here, here, and here), it’s looking less like a bug and more like an “optimization”. Futuremark put out a report titled “Alleged NVIDIA Driver Cheating on 3DMark03″. Apparently when they redid some of their shader code, NVIDIA performance decreased by as much as about 25% for some tests. Beyond3D also found similar “optimizations” from ATI, but to a lesser extent. ATI apparently jiggered the ordering of the shader instructions (not a bad thing itself) to get better performance for a visually identical shader. Which is what you’d want the driver compiler to do. However they did admit to doing this just for two shaders in the 3DMark03 tests, which is a bad thing – optimizing for a test. They realized this is bad and said they’d take these optimizations out of the next driver revision. You’d think that after ATI had gotten caught cheating (again) with Quake 3, they wouldn’t pull this stuff again. I’m really surprised than any video card companies not only thinks they can get away with this (seemingly repeatedly), but that they feel it’s necessary. Sure ATI and NVIDIA are fighting for supremacy, but do they really feel their cards suck so much they need to inflate benchmark results?
When fetching a graphics device from DirectX, it’s possible to request a software renderer, though until recently no such thing existed. If you didn’t know, graphics god Mike Abrash left Microsoft and had been quietly working on a software renderer – called Pixomatic – at RAD GameTools, which has been included in UT2003 for those folks who are running on older or unstable hardware. Apparently a 1GHz CPU will run the game, though with some things like shadows and some dynamic lighting turned off. Still, it’s nice for those of us who have to support older hardware (typically done via an OpenGL layer) but would like to use all the latest DirectX API. Find out more info here at the Unreal web site.
It’s come to my attention that not only did NVIDIA have the band Smashmouth at their E3 party, they had porn star “Catalina” there as well. (view the party pix here…) which has apparently upset some shareholders on the Yahoo NVDA board. Jeez, whom do they think the target audience is anyway? Alcohol fueled nerds being wooed at a party by a video card company is no big news, it’s expected!. Besides ATI supposedly had Smashmouth at their E3 party in 2001, so NVIDIA is just playing catch-up. Hell, ATI was expensing lapdances for some select game developers at E3 in Atlanta a few years ago, so having a porn star bounce around is certainly going to be cheaper in the long run. Whatever it takes to get game developers favoring your cards is the name of the game, and selling sex to nerds is certainly fun and easy. Though – looking at the pictures is a bit pathetic – like Siggraph at New Orleans, when the girls flip their tops up for beads and all the nerds bring their digital cameras came out, I was genuinely ashamed to be associated with those pathetic guys. But I’m not complaining, the nudity certainly livened things up.
There are some performance tweaks, support for anti-aliased render targets, some DirectPlay fixes, and a Managed DirectX security fix. For developers there’s some new D3DX functionality, otherwise it looks pretty much the same. If you’re not a developer and you already have DirectX 9 installed, you probably don’t need to worry about this update unless you’re told you need it by a hardware vendor. You can get it here.
I have to admit that that I wasn’t particularly enthralled when NVIDIA announced Cg. It’s bad enough that we’ve got DirectX 9′s HLSL and OpenGL 2.0′s GSLang. As someone who got to program DirectX, OpenGL, Glide and CIF (ATI’s proprietary 3D language, RIP), I really hate competing graphics languages. I feel it’s a waste of time to reinvent the wheel in a different flavor, and I really would rather be creating something new than porting code. On the other hand, I ran across this article by Colin Stoner that hits on some of the more recent uneasiness. While Colin does raise some interesting points, like even though Cg is open source and theoretically could output for ATI chips, ATI doesn’t give a shit as they are on the HLSL/GSLang wagon, and how NVIDIA is getting games to brand themselves with the NVIDIA logo, he really is complaining about something that I don’t think is a bad direction for the PC graphics world in general, at least I think so…
I got a fair amount of (good-natured but strident) flak from NVIDIA for my “short sighted” viewpoint. Yeah, well sorry. Cg is so close to HLSL that I understood the need to get something out there while HLSL shaped up. But hey – HLSLs here now, so why hasn’t Cg been merged into HLSL?. The recent Cg book by Fernando Kilgard (a really nice book by the way, see the Gamasutra article) is being followed by another one. Which seems strange to me. The Cg book is selling well, but it just came out – it’s a bit soon to be following up with another one. This seems to point to Cg being around for a while, and NVIDIA pushing some not insignificant resources at it. Let’s face it, NVIDIA ain’t stupid, they’ve got some of the smartest engineers in the business even though I don’t care much for some of their marketing practices. What other reason could Cg exist when HLSL/GSLang could easily fill the role? It’s got to be because NVIDIA owns Cg. It owns a high level rendering language. What can you do with that? It’s only an advantage if you can do something with it. NVIDIA quietly picked up some IP last year that really could make CineFX engine a real cinematic experience. This is all sheer speculation on my part, but it’s what I’d do if I had those resources. NVIDIA’s market share is still twice as big as ATI’s, a nice end run could cut ATI off at the knees if executed correctly and put to rest any doubt about who’ll supply the chips for Xbox2.
So how can this be a good thing? DX9 is going to be here for a while. ATI is settling down to a slower R&D cycle. Ho hum. Nothing new on the horizon for a while, it looks like smooth, straight sailing for a while. Unless someone decides to rock the boat.