Sign in to follow this  
MikeyO

Nvidia vs. ATI

Recommended Posts

This isn't really a 'vs.' thread, but I've been noticing a couple differences between a Radeon 9600 and a Geforce 6800 (duh. yeah.). First off, I get "D3DERR_INVALIDCALL" on the ATI card when this line comes up: ZTexture = new Texture(device, shadowTexDim, shadowTexDim, 1, Usage.DepthStencil, Format.D24S8, Pool.Default); Even though it loads up fine on the Nvidia card. I cannot imagine what causes this crash, as they both seem to support D24S8 as a Depth Stencil surface. The other problem is where all the shader settings are the same, but you can see the difference between the Nvidia and ATI cards here: Anybody got any ideas on how I can fix these problems?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Did you try to update the Radeon's drivers? Some old ATI drivers present problems with new applications.

Share this post


Link to post
Share on other sites
Maybe the vertex format. I had a similar issue with a shader. On NVIDIA, it worked fine, but there were a lot of artefacts on ATI. I finally found out that the vertex format of my models was not the same as the one my shader needed (the shader needed some vertex color and there wasn't any in the vertex format of my model)

So, simply adding vertex colors to my model corrected the bug : no more artefacts on the ATI card.

Share this post


Link to post
Share on other sites
IIRC Ati card's don't support depth stencil textures in Direct3D (they do support them under OpenGL though). If you're doing shadow mapping, you need to use, for example, R16F render target texture and render depth to that.

Share this post


Link to post
Share on other sites
Thanks for the help, I solved the shadowing issue by calling device.CreateDepthStencilSurface instead of creating a new texture and getting it's surface.

When we upgraded the drivers for the ATI card we got a BSOD, though. So I will have to test the other problem on a different machine yet.

Share this post


Link to post
Share on other sites
If you are getting different behaviour between cards the first thing to do is to turn on the D3D debug runtime and crank up the warning level to see if there's anything in the debug spew in the output window in visual studio when running through the debugger. Often you'll be doing something bad that one card/driver combo happens to accept and the other barfs on.

As for the texture issue, I've a feeling ATI cards don't support depth surfaces as textures whereas nVIDIA cards do (they do that special PCF shadow map thing with depth stencil surfaces used as textures).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this