Sign in to follow this  
Murazor

Border address mode support

Recommended Posts

Hello, I am trying to use a border color for my texture in DX9 and was surprised that my latest Radeon 9800 driver says it doesn't support it. It does work if I don't take notice of the caps, but a problem occurs when I set DX in debug mode, as effect files fail to validate a technique that uses a pixel shader with this address mode in a sampler. This makes it rather awkward to debug an effect file. Is this a driver glitch, or are border colors not really as standard as I thought they would be?

Share this post


Link to post
Share on other sites
Drivers can only expose CAPs that are completely supported. So if the HW is capable of using the BORDER mode in Situation A but not in Situation B they are not allowed to expose that CAP bit.

Ignoring the CAPs is dangerous. While it may work now, the next version of the driver might completely disable it. Also there may be other cards which really cannot support that mode.

It would be interesting to see what ValidateDevice returns in debug and release mode. It may be allowed to flag that particular setting even though they CAP bit cannot be exposed.

Share this post


Link to post
Share on other sites
Well, I gave ValidateDevice a quick try, and it just returns E_FAIL (which is, by the way, not a valid return value according to the DirectX Docs) when D3DTADDRESS_BORDER is set in both debug and release mode. Not too surprising of course.

But I still find it odd that in the days where anisotropic filtering and pixel shader 2.0 are standard this basic address mode is not supported. At least, according to the driver.

Share this post


Link to post
Share on other sites
Quote:
Original post by Murazor
Well, I gave ValidateDevice a quick try, and it just returns E_FAIL (which is, by the way, not a valid return value according to the DirectX Docs)

Functions aren't limited to the set of return values mentioned in the docs. They can (and usually do) return a broader range of errors (but those mentioned in the docs have the special meaning mentioned - i.e. they're the "specific" stuff)

Share this post


Link to post
Share on other sites
Quote:
Original post by Coder
Quote:
Original post by Murazor
Well, I gave ValidateDevice a quick try, and it just returns E_FAIL (which is, by the way, not a valid return value according to the DirectX Docs)

Functions aren't limited to the set of return values mentioned in the docs. They can (and usually do) return a broader range of errors (but those mentioned in the docs have the special meaning mentioned - i.e. they're the "specific" stuff)


No doubt... although that does make the choice of words in the documentation a bit poor: "If the method fails, the return value can be one of the following values".

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