Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Blaster

D3DERR_CONFLICTINGRENDERSTATE/ValidateDevice

This topic is 5984 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am using DirectX8.1 with VC++.NET on Windows XP. I tried using ValidateDevice, and I got the error code D3DERR_CONFLICTINGRENDERSTATE. Of course, nothing tells me which states are conflicting. How can I find which render states are conflicting? If you have any idea please tell me. ---------------- Blaster Computer game programmer and part time human being Strategy First - http://www.strategyfirst.com BlasterSoft - http://www.blastersoft.com

Share this post


Link to post
Share on other sites
Advertisement
quote:
Original post by Blaster
Of course, nothing tells me which states are conflicting.



Are you sure you''re running the debug runtime?

Share this post


Link to post
Share on other sites
Yes, I am running the debug runtime, with debug output at max level. All it says is that ValidateDevice failed.

If I ignore the ValidateDevice, the visual result is flawless (or the result of the conflict has always been there) and the program runs without any problem.

----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com

Share this post


Link to post
Share on other sites
Also, the worse thing is that the documentation doesn''t mention D3DERR_CONFLICTINGRENDERSTATE being a valid return value for ValidateDevice.

----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com

Share this post


Link to post
Share on other sites
What states do you have set ?

One of the states (renderstate or texture stage state) isn''t working - so although the visual result ''looks'' the same, one of the states (it could be anything - say filtering set to anisotropic) isn''t actually having an affect on the output.

ValidateDevice() checks *everything* currently set on the device.

As for the undefined return code - you probably have a DX7 level graphics card driver which is returning a DX7 error code.

--
Simon O''Connor
Creative Asylum Ltd
www.creative-asylum.com

Share this post


Link to post
Share on other sites
I have a GeForce2 MX 400 on an Asus board, with the (almost?) latest reference drivers from nvidia.

Is the anisotropic thing just an example? Because I am using this filter (and also checking the corresponding caps).

I wrote a piece of code last time to keep a list of all the render states I set before the ValidateDevice. Back at home I''ll send the list.

----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com

Share this post


Link to post
Share on other sites
Yep, the anisotropic thing is just an example . However its one of those states which sometimes comes with tradeoffs.

Some features supported by modern chips have restrictions attached - often in terms of performance, but also often in terms of permutations of states possible.

Some common examples of some of things which have tradeoffs are user clip planes, W buffering, anisotropic filtering, spotlights vs point lights etc.

Since theres potentially millions of state combinations, it wouldn''t be sensible to have a cap for each - thus ValidateDevice()...



--
Simon O''Connor
Creative Asylum Ltd
www.creative-asylum.com

Share this post


Link to post
Share on other sites
I am using W buffering, but I heard it's going to be removed from DirectX 9... anyway, it's irrelevant.

I tried using user clip planes, but the caps say the HW T&L doesn't support any.

I have a splot light, but it's disabled.

I will try deactivating W buffering and the anisotropic filtering. We'll see.

----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com

[edited by - Blaster on June 3, 2002 10:48:26 AM]

Share this post


Link to post
Share on other sites
quote:
I am using W buffering, but I heard it''s going to be removed from DirectX 9... anyway, it''s irrelevant.


Its still there...though I think (IIRC) some IHVs have discussed not exposing W in their caps.

--
Simon O''Connor
Creative Asylum Ltd
www.creative-asylum.com

Share this post


Link to post
Share on other sites
Do you think D3DERR_CONFLICTINGRENDERSTATE could mean that a TextureStageState could be conflicting also?


----------------
Blaster
Computer game programmer and part time human being
Strategy First - http://www.strategyfirst.com
BlasterSoft - http://www.blastersoft.com

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!