Skip to main content
GameDev.net gamedev.net
🔒 Locked

DirectX 9 card compatibility issues?

Started by bschneid Dec 25, 2006 at 8:34 PM 5 replies 3.4k views
Original Post
bschneid
bschneid
I recently had the urge to learn DirectX programming (so I'm a DirectX noob, that may be relevant to the situation...). For Christmas I received the book "Introduction to 3D game programming with DirectX 9.0c: A shader approach" by Frank Luna. The problem is, I've got a Radeon 9250 graphics card, which I'm not sure is compatible with Vertex and Pixel Shaders v2.0, which the book uses strongly (according to the intro) in later chapters. Is my research correct that the 9250 is not compatible? If so, is there some sort of driver update that might fix the problem? If not, then is there a huge difference in v2.0 and the earlier versions my card supports(as in, is it possible for a noob to still use the techniques in the book, but slightly modify the code to work)? Thanks for your help! EDIT: To explain my predicament a bit more, I just recently bought this card, even though it is a few years old. I was previously running an Intel Integrated card, and this card seemed to be the best card in the price range for my computer (had to be PCI...) so I really don't want to go buy a new card just for this book...I realized I might have a problem after looking online and using the DirectX caps viewer, where the values for the shaders were 0, which I assumed to equal problems for me.
Kambiz
Kambiz
Your graphic card should support pixel shader 1.4 and vertex shader 1.1 (See Radeon 9200 series Specifications).
So try installing the latest driver available on http://ati.amd.com/support/driver.html (not the one on your CD)

If you need shader model 2 or higher you can use the Reference Rasterizer that will make Direct3D render everything on the CPU (It will run slow... but it should work).
sirob
sirob
Shader Model 2.0 (VS2 and PS2) introduces quite a bit of new features, which are not really available in SM1.

Frankly, I think that most techniques meant for SM2 won't run on an SM1 at all, and even if they do, it'd require quite a bit of optimization and modification. I don't think this would be the best way to learn shaders -- when you need to modify the techniques you're learning to conform to stricter requirements.

Most important IMO is the global limit on a shader's length in SM1, which is quite lower than in SM2. This will pose a big problem trying to convert the more complex techniques to lower shader models.

All is not lost, however. For Vertex Shaders, there's always Software Vertex Processing. This sounds like it'll be slow, and granted, it really isn't fast, but it's more than usable. Since you plan on just learning, even if it runs at low-framerates, it should hopefully still qualify as interactive :).

As for Pixel Shaders, you could always attempt to use 1.4 instead of 2.0, and use Software Vertex Shaders to perform vertex processing. If you can do that, you should be able to run the techniques at a reasonable speed.

If you can't get the PS to compile as SM1.4, you can still use the RefRast. This is painfully slow, however supports nearly all features and techniques available in DX9. This is perfect for learning new stuff, but annoyingly slow.

If you plan on using RefRast, I highly recommend using a very small window (100x100) when possible -- at least it'll run at more than 1fps.

Hope this helps.
Sirob Yes.» - status: Work-O-Rama.
bschneid
bschneid
Thank you to both posters. You guys were a huge help. I guess I'll have to settle for really slow performance.
Kambiz
Kambiz
You can also try using SwiftShader in place of standard Direct3D implementations it is said to be 50 times faster than Microsoft's Direct3D Reference Rasterizer but currently it supports only Vertex Shader 1.1 and Pixel Shader 1.4 but you can read in the FAQ that both Pixel and Vertex Shader 2.0-level support are under development.
I have not used this program and I do not know how active the project is but if they implement shader model 2, much faster than the Reference Rasterizer, it could be the right tool for you.
bschneid
bschneid
Awesome. Thanks for the link.
Jamil
Jamil
If you can somehow sell your 9250 and get a GeForce FX5200, you'll be glad you did. The 5200 is a DirectX 9 generation card and supports PS and VS 2.0 in hardware. They're very cheap ($50):

http://www.newegg.com/Product/ProductList.asp?Submit=ENE&N=2010380048+1069609642+106790727&Subcategory=48&description=&Ntk=&srchInDesc=

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.