Skip to main content

DirectX 9 ?

Submitted by Daemin on

I'm wondering how everyone is finding DirectX9 so far, is it easy to work with, how are the shaders, is it worth upgrading if you have an older (or ancient) video card? And has anyone used it yet with any language apart from C++ and VB? (Like C# etc?)

I personally haven't used it, and am reserved about downloading and installing it.

Submitted by GooberMan on Fri, 24/01/03 - 12:49 AMPermalink

I ported all my code to DirectX 9. It seems to run a little bit faster. I haven't looked at the shaders at all, but the code changes to get your program working under DirectX 9 are minimal. Take a look at this article I wrote to see what I encountered moving from DX8.1 to DX9: http://groups.msn.com/BrisbaneGameDev/migratingfromdirectx8.msnw

Ethan Watson, teh brand spankin' new Krome employee.

Submitted by Blitz on Fri, 24/01/03 - 3:14 AMPermalink

Still just using DX8. I'll upgrade to DX9 either when i have a game that needs it, or when i wanna play with the HLSL. But for now it's just standard simple stuff so sticking with DX8 is easy enough.
CYer, Blitz

Submitted by Maitrek on Fri, 24/01/03 - 3:11 PMPermalink

Daemin, you should already know what happens when you take an ancient video card and run DX-9 on it, I lost 3000+ 3D Marks when I 'upgraded' to DX-9, instead of DX-8.
Of course, there are other factors. Old operating system, new card etc etc....anyone else had this happen to 'em?

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by bradb on Fri, 24/01/03 - 8:59 PMPermalink

I am using DirectX 9 in an application/renderer i am working on at present, of course i am using C++ so i cant comment on the other languages.
Liking what i have encountered thus far.

Submitted by Daemin on Fri, 24/01/03 - 11:35 PMPermalink

Maitrek: Yeha, well I thought this would be a nice topic to get the programming thread up and running actively :-P

So far it looks like I'll still be using DirectX8.1 for all my things until I get a better computer.

From what I have read through it seems that DirectX7 has made a comeback with its directdraw component, for all the people still wishing to make 2D games easily. I doubt anyone here's used this feature so far.

Submitted by Blitz on Sat, 25/01/03 - 1:19 AMPermalink

The way i hear it, using directdraw for 2D games is a bit easier, but it's much slower on accelerated hardware than using 3D quads, because gfx cards these days are optimised for drawing polygons rather than blocks of screen space... So depending on if there was anything really fancy you wanted to do, using directdraw would be fine.
CYer, Blitz

Submitted by lava monkey on Sat, 25/01/03 - 8:50 AMPermalink

Ive noticed some good changes already going from 8.1 to 9.
Im not sure about performance but code wise theres alot of better support.
They've added some great support to DirectShow with VMR filters where u can use pixel shaders on videos, and the speed of playback + loading both for audio and video.
Im writting a few tutorials for DirectShow+Music atm if anyone wanted to play around with these new feaures.

Submitted by Blitz on Sun, 26/01/03 - 9:54 AMPermalink

Something i've wondered, and been to lazy to really look for, is whether DX9 implements vertex and pixel shaders in software if they are not available on the hardware? Anyone know? It's difficult to program shaders if you can't afford a gfx card that can run them hehe.
CYer, Blitz

Submitted by Daemin on Sun, 26/01/03 - 12:55 PMPermalink

I doubt it, since DirectX cannot even emulate video modes in software if they aren't available in hardware, not even in its reference(software) rasteriser.

Submitted by GooberMan on Mon, 27/01/03 - 8:17 AMPermalink

Last I checked DX's shaders were hardware only according to the documentation, but I could run their sample apps using said shaders, so I dunno.

Ethan Watson, teh brand spankin' new Krome employee.

Submitted by Maitrek on Fri, 31/01/03 - 10:48 AMPermalink

I don't see how you could possibly make fast enough software shaders anyway, so I doubt they spent hundreds of man hours trying to figure out a decent way of implementing them. Plus even if they did have software shaders, it's unlikely they'd be able to use what your old hardware can do + software shaders anyway.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by redwyre on Sat, 15/02/03 - 8:06 PMPermalink

quote:Originally posted by Blitz

Something i've wondered, and been to lazy to really look for, is whether DX9 implements vertex and pixel shaders in software if they are not available on the hardware? Anyone know? It's difficult to program shaders if you can't afford a gfx card that can run them hehe.
CYer, Blitz

Vertex shaders can be emulated on the CPU quite efficiently (sometimes better then the GPU), although pixel shaders cannot. The reference rasteriser emulates *everything*, even pixel shaders - but will run slow as hell if you try. So you can forget pixel shaders untill you get a card that support them. Vertex shaders are still quite powerfull and fun, and if you are running them in software you can use any version including vs_*_sw (no limits!).

Oh, and learn HLSL too. Although it's still rather young, the compiler can produce some very nice code.

--redwyre

Submitted by GooberMan on Tue, 18/02/03 - 1:01 AMPermalink

I've been playing around with Vertex Shaders a bit lately. Pretty damn kewl. I could probably quite easilly rewrite my Worms In Tanks' heightfield to use vertex shaders instead of locking/unlocking vertex buffers, and even then that's really only using them in a simple way. Simple = taking control of transforming the vertices using the normal matrices, complex = taking alot of the strain off the CPU and memory transfer by doing as much as possible in VS.

Haven't really looked at HLSL, will probably look at it sometime soon though.

Ethan Watson, teh brand spankin' new Krome employee.

Submitted by redwyre on Tue, 04/03/03 - 5:48 PMPermalink

quote:Originally posted by GooberMan

I've been playing around with Vertex Shaders a bit lately. Pretty damn kewl. I could probably quite easilly rewrite my Worms In Tanks' heightfield to use vertex shaders instead of locking/unlocking vertex buffers, and even then that's really only using them in a simple way. Simple = taking control of transforming the vertices using the normal matrices, complex = taking alot of the strain off the CPU and memory transfer by doing as much as possible in VS.

Yeah, but then you loose the ability to deform it, since you can't re-generate the normals.

--redwyre

Submitted by Maitrek on Mon, 10/03/03 - 9:30 PMPermalink

I'm going to make a revision to my statement above, directx 9.0 sucks unless you have a GeForce FX, or a Radeon 9500/600/700/800 (ie pixel shader 2.0). This is performance-wise speaking as a gamer/consumer, as a programmer yet to really find out whether I think DirectX 9 is any good.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by redwyre on Tue, 11/03/03 - 11:20 AMPermalink

quote:Originally posted by Maitrek

I'm going to make a revision to my statement above, directx 9.0 sucks unless you have a GeForce FX, or a Radeon 9500/600/700/800 (ie pixel shader 2.0). This is performance-wise speaking as a gamer/consumer, as a programmer yet to really find out whether I think DirectX 9 is any good.

I totally disagree. I've only seen perfomance increases or no change (gf4mx). The API hasn't changed much, mainly just a few aditions and refinements.

--redwyre

Submitted by Daemin on Tue, 11/03/03 - 11:53 AMPermalink

That's because the the gf4mx uses DirectX 7.1 as its minimum directx version (yep, its using the gf2 core).

You'd have to perform various benchmarks to be (kinda) sure.

Submitted by Maitrek on Wed, 12/03/03 - 1:24 AMPermalink

I lost about 2.5K 3DMarks in 3DMark2001 when I "upgraded" from 8.1 to 9.0 on my Athlon XP 2100+ with a GF4 Ti4600...now that's a performance loss on a benchmark, so who knows what it means gaming wise, I'll find out when I actually get to play some games someday soon :)

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by redwyre on Thu, 13/03/03 - 3:10 AMPermalink

3DMark2001 is pretty old... perhaps 3DMark2002/3 will give you those marks back and then some... ;)

--redwyre

Submitted by GooberMan on Thu, 13/03/03 - 7:01 AMPermalink

You can't get good marks on 3DMark2003 unless you own a raedon 9000 (I think that was the card), and even then I hear they're half of what you'd normally get for an ?bermachine

Ethan Watson
Current job: Programmer, Krome Studios

Submitted by Daemin on Thu, 13/03/03 - 8:44 AMPermalink

Gooberman - that would be the 9500 Radeon cards +, since the 9000 and the 9100/9200 use the R280 processor, which is the same as the Radeon 8500 series.

Just FYI...

Submitted by Maitrek on Thu, 13/03/03 - 11:12 AMPermalink

Okay for the sake of the "3DMark2001" is fairly old....for starters 3DMark2002 doesn't exist, and 3DMark2003 only runs on DX9 - so you can't compare the loss of performance between DX9 and DX8.1 with 3DMark2003...

And also, yes I realise they always make the latest 3DMark software very harsh in terms of marks and framerates because GPUs and CPUs are getting fast at an extreme rate so you'll probably see scores of like 9000-10000 by the end of the year anyway.

My opinion, only get DX9 if you have a card which supports pixelshader 2.0 or above. If you have pixelshader 1.x DirectX8.1 will run faster, and if you don't have any pixelshading capabilities on your graphics card, buy a new video card if you need to play the latest games.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by GooberMan on Fri, 14/03/03 - 12:49 AMPermalink

quote:Originally posted by Maitrek

And also, yes I realise they always make the latest 3DMark software very harsh in terms of marks and framerates because GPUs and CPUs are getting fast at an extreme rate so you'll probably see scores of like 9000-10000 by the end of the year anyway.

Perhaps they should have called it 3DMark 2004? :P

Ethan Watson
Current job: Programmer, Krome Studios

Submitted by Daemin on Fri, 14/03/03 - 8:58 AMPermalink

I think naming something after a year is taking the easy way out (*cough*microsoft*cough*). It would be better if they could use interesting names, heck even the Windows in-development code-names sound better than "2000", or "2003"...

bleh.

Submitted by Sam on Fri, 14/03/03 - 11:38 PMPermalink

Speaking of DirectX does anyone here know of any way to get the SDK sent out on CD or must we try and download this huge file via our pitiful Adelaide dial-up connection? I rang microsoft and I may as well gone out into the back yard and asked my dog for the CD

Submitted by Daemin on Sat, 15/03/03 - 9:49 AMPermalink

Friends with DSL help a lot :-), so does an uncapped University Dialup account (well it doesn't exist anymore)-:

I think I've got a copy on CD, if you wanted to buzz over here you could borrow it. (Yes, I'm in Adelaide too!)

Submitted by Maitrek on Sat, 15/03/03 - 10:12 AMPermalink

Funny story

I had a clean install of my system with only DirectX 9 ever installed on it - no previous versions etc etc and I got a result of 8500 or so 3DMarks in 3DMark2001.

Scrapped that due to crappy performance levels, then reinstalled the whole system again exactly the same and instead of DX9, I installed DirctX8.1 - and I got 11500 again. All good.

Then I installed DirectX9 again over the top of DX8.1 because I wanted to run 3DMark2003, and now in 3DMark2001 - I got scores of approximately 11500 once more with that setup

Wierd as...
My answer to this problem - NFI.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by Sam on Sun, 16/03/03 - 1:57 AMPermalink

Hey Daemin,

Thanks for that its great to hear that there is more than just one game coder here in Adelaide - its a pity that there arent more developers here hey. I have almost finished the DirectX download I thought that I should get off my lazy ass and learn some DirectX as it has been awhile and I feel that my OpenGL skills arent too bad at the moment. Wondering how your ???? (was it the Auran engine) engine work is going it would be quite interesting to hear - perhaps could chat over ICQ some time.

Posted by Daemin on

I'm wondering how everyone is finding DirectX9 so far, is it easy to work with, how are the shaders, is it worth upgrading if you have an older (or ancient) video card? And has anyone used it yet with any language apart from C++ and VB? (Like C# etc?)

I personally haven't used it, and am reserved about downloading and installing it.


Submitted by GooberMan on Fri, 24/01/03 - 12:49 AMPermalink

I ported all my code to DirectX 9. It seems to run a little bit faster. I haven't looked at the shaders at all, but the code changes to get your program working under DirectX 9 are minimal. Take a look at this article I wrote to see what I encountered moving from DX8.1 to DX9: http://groups.msn.com/BrisbaneGameDev/migratingfromdirectx8.msnw

Ethan Watson, teh brand spankin' new Krome employee.

Submitted by Blitz on Fri, 24/01/03 - 3:14 AMPermalink

Still just using DX8. I'll upgrade to DX9 either when i have a game that needs it, or when i wanna play with the HLSL. But for now it's just standard simple stuff so sticking with DX8 is easy enough.
CYer, Blitz

Submitted by Maitrek on Fri, 24/01/03 - 3:11 PMPermalink

Daemin, you should already know what happens when you take an ancient video card and run DX-9 on it, I lost 3000+ 3D Marks when I 'upgraded' to DX-9, instead of DX-8.
Of course, there are other factors. Old operating system, new card etc etc....anyone else had this happen to 'em?

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by bradb on Fri, 24/01/03 - 8:59 PMPermalink

I am using DirectX 9 in an application/renderer i am working on at present, of course i am using C++ so i cant comment on the other languages.
Liking what i have encountered thus far.

Submitted by Daemin on Fri, 24/01/03 - 11:35 PMPermalink

Maitrek: Yeha, well I thought this would be a nice topic to get the programming thread up and running actively :-P

So far it looks like I'll still be using DirectX8.1 for all my things until I get a better computer.

From what I have read through it seems that DirectX7 has made a comeback with its directdraw component, for all the people still wishing to make 2D games easily. I doubt anyone here's used this feature so far.

Submitted by Blitz on Sat, 25/01/03 - 1:19 AMPermalink

The way i hear it, using directdraw for 2D games is a bit easier, but it's much slower on accelerated hardware than using 3D quads, because gfx cards these days are optimised for drawing polygons rather than blocks of screen space... So depending on if there was anything really fancy you wanted to do, using directdraw would be fine.
CYer, Blitz

Submitted by lava monkey on Sat, 25/01/03 - 8:50 AMPermalink

Ive noticed some good changes already going from 8.1 to 9.
Im not sure about performance but code wise theres alot of better support.
They've added some great support to DirectShow with VMR filters where u can use pixel shaders on videos, and the speed of playback + loading both for audio and video.
Im writting a few tutorials for DirectShow+Music atm if anyone wanted to play around with these new feaures.

Submitted by Blitz on Sun, 26/01/03 - 9:54 AMPermalink

Something i've wondered, and been to lazy to really look for, is whether DX9 implements vertex and pixel shaders in software if they are not available on the hardware? Anyone know? It's difficult to program shaders if you can't afford a gfx card that can run them hehe.
CYer, Blitz

Submitted by Daemin on Sun, 26/01/03 - 12:55 PMPermalink

I doubt it, since DirectX cannot even emulate video modes in software if they aren't available in hardware, not even in its reference(software) rasteriser.

Submitted by GooberMan on Mon, 27/01/03 - 8:17 AMPermalink

Last I checked DX's shaders were hardware only according to the documentation, but I could run their sample apps using said shaders, so I dunno.

Ethan Watson, teh brand spankin' new Krome employee.

Submitted by Maitrek on Fri, 31/01/03 - 10:48 AMPermalink

I don't see how you could possibly make fast enough software shaders anyway, so I doubt they spent hundreds of man hours trying to figure out a decent way of implementing them. Plus even if they did have software shaders, it's unlikely they'd be able to use what your old hardware can do + software shaders anyway.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by redwyre on Sat, 15/02/03 - 8:06 PMPermalink

quote:Originally posted by Blitz

Something i've wondered, and been to lazy to really look for, is whether DX9 implements vertex and pixel shaders in software if they are not available on the hardware? Anyone know? It's difficult to program shaders if you can't afford a gfx card that can run them hehe.
CYer, Blitz

Vertex shaders can be emulated on the CPU quite efficiently (sometimes better then the GPU), although pixel shaders cannot. The reference rasteriser emulates *everything*, even pixel shaders - but will run slow as hell if you try. So you can forget pixel shaders untill you get a card that support them. Vertex shaders are still quite powerfull and fun, and if you are running them in software you can use any version including vs_*_sw (no limits!).

Oh, and learn HLSL too. Although it's still rather young, the compiler can produce some very nice code.

--redwyre

Submitted by GooberMan on Tue, 18/02/03 - 1:01 AMPermalink

I've been playing around with Vertex Shaders a bit lately. Pretty damn kewl. I could probably quite easilly rewrite my Worms In Tanks' heightfield to use vertex shaders instead of locking/unlocking vertex buffers, and even then that's really only using them in a simple way. Simple = taking control of transforming the vertices using the normal matrices, complex = taking alot of the strain off the CPU and memory transfer by doing as much as possible in VS.

Haven't really looked at HLSL, will probably look at it sometime soon though.

Ethan Watson, teh brand spankin' new Krome employee.

Submitted by redwyre on Tue, 04/03/03 - 5:48 PMPermalink

quote:Originally posted by GooberMan

I've been playing around with Vertex Shaders a bit lately. Pretty damn kewl. I could probably quite easilly rewrite my Worms In Tanks' heightfield to use vertex shaders instead of locking/unlocking vertex buffers, and even then that's really only using them in a simple way. Simple = taking control of transforming the vertices using the normal matrices, complex = taking alot of the strain off the CPU and memory transfer by doing as much as possible in VS.

Yeah, but then you loose the ability to deform it, since you can't re-generate the normals.

--redwyre

Submitted by Maitrek on Mon, 10/03/03 - 9:30 PMPermalink

I'm going to make a revision to my statement above, directx 9.0 sucks unless you have a GeForce FX, or a Radeon 9500/600/700/800 (ie pixel shader 2.0). This is performance-wise speaking as a gamer/consumer, as a programmer yet to really find out whether I think DirectX 9 is any good.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by redwyre on Tue, 11/03/03 - 11:20 AMPermalink

quote:Originally posted by Maitrek

I'm going to make a revision to my statement above, directx 9.0 sucks unless you have a GeForce FX, or a Radeon 9500/600/700/800 (ie pixel shader 2.0). This is performance-wise speaking as a gamer/consumer, as a programmer yet to really find out whether I think DirectX 9 is any good.

I totally disagree. I've only seen perfomance increases or no change (gf4mx). The API hasn't changed much, mainly just a few aditions and refinements.

--redwyre

Submitted by Daemin on Tue, 11/03/03 - 11:53 AMPermalink

That's because the the gf4mx uses DirectX 7.1 as its minimum directx version (yep, its using the gf2 core).

You'd have to perform various benchmarks to be (kinda) sure.

Submitted by Maitrek on Wed, 12/03/03 - 1:24 AMPermalink

I lost about 2.5K 3DMarks in 3DMark2001 when I "upgraded" from 8.1 to 9.0 on my Athlon XP 2100+ with a GF4 Ti4600...now that's a performance loss on a benchmark, so who knows what it means gaming wise, I'll find out when I actually get to play some games someday soon :)

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by redwyre on Thu, 13/03/03 - 3:10 AMPermalink

3DMark2001 is pretty old... perhaps 3DMark2002/3 will give you those marks back and then some... ;)

--redwyre

Submitted by GooberMan on Thu, 13/03/03 - 7:01 AMPermalink

You can't get good marks on 3DMark2003 unless you own a raedon 9000 (I think that was the card), and even then I hear they're half of what you'd normally get for an ?bermachine

Ethan Watson
Current job: Programmer, Krome Studios

Submitted by Daemin on Thu, 13/03/03 - 8:44 AMPermalink

Gooberman - that would be the 9500 Radeon cards +, since the 9000 and the 9100/9200 use the R280 processor, which is the same as the Radeon 8500 series.

Just FYI...

Submitted by Maitrek on Thu, 13/03/03 - 11:12 AMPermalink

Okay for the sake of the "3DMark2001" is fairly old....for starters 3DMark2002 doesn't exist, and 3DMark2003 only runs on DX9 - so you can't compare the loss of performance between DX9 and DX8.1 with 3DMark2003...

And also, yes I realise they always make the latest 3DMark software very harsh in terms of marks and framerates because GPUs and CPUs are getting fast at an extreme rate so you'll probably see scores of like 9000-10000 by the end of the year anyway.

My opinion, only get DX9 if you have a card which supports pixelshader 2.0 or above. If you have pixelshader 1.x DirectX8.1 will run faster, and if you don't have any pixelshading capabilities on your graphics card, buy a new video card if you need to play the latest games.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by GooberMan on Fri, 14/03/03 - 12:49 AMPermalink

quote:Originally posted by Maitrek

And also, yes I realise they always make the latest 3DMark software very harsh in terms of marks and framerates because GPUs and CPUs are getting fast at an extreme rate so you'll probably see scores of like 9000-10000 by the end of the year anyway.

Perhaps they should have called it 3DMark 2004? :P

Ethan Watson
Current job: Programmer, Krome Studios

Submitted by Daemin on Fri, 14/03/03 - 8:58 AMPermalink

I think naming something after a year is taking the easy way out (*cough*microsoft*cough*). It would be better if they could use interesting names, heck even the Windows in-development code-names sound better than "2000", or "2003"...

bleh.

Submitted by Sam on Fri, 14/03/03 - 11:38 PMPermalink

Speaking of DirectX does anyone here know of any way to get the SDK sent out on CD or must we try and download this huge file via our pitiful Adelaide dial-up connection? I rang microsoft and I may as well gone out into the back yard and asked my dog for the CD

Submitted by Daemin on Sat, 15/03/03 - 9:49 AMPermalink

Friends with DSL help a lot :-), so does an uncapped University Dialup account (well it doesn't exist anymore)-:

I think I've got a copy on CD, if you wanted to buzz over here you could borrow it. (Yes, I'm in Adelaide too!)

Submitted by Maitrek on Sat, 15/03/03 - 10:12 AMPermalink

Funny story

I had a clean install of my system with only DirectX 9 ever installed on it - no previous versions etc etc and I got a result of 8500 or so 3DMarks in 3DMark2001.

Scrapped that due to crappy performance levels, then reinstalled the whole system again exactly the same and instead of DX9, I installed DirctX8.1 - and I got 11500 again. All good.

Then I installed DirectX9 again over the top of DX8.1 because I wanted to run 3DMark2003, and now in 3DMark2001 - I got scores of approximately 11500 once more with that setup

Wierd as...
My answer to this problem - NFI.

Snootchie bootchies!
Any off-topic issues send to maitrek@austarmetro.com.au

Submitted by Sam on Sun, 16/03/03 - 1:57 AMPermalink

Hey Daemin,

Thanks for that its great to hear that there is more than just one game coder here in Adelaide - its a pity that there arent more developers here hey. I have almost finished the DirectX download I thought that I should get off my lazy ass and learn some DirectX as it has been awhile and I feel that my OpenGL skills arent too bad at the moment. Wondering how your ???? (was it the Auran engine) engine work is going it would be quite interesting to hear - perhaps could chat over ICQ some time.