Jump to content
  • Advertisement
Sign in to follow this  
MasterWorks

D3DPOOL_DEFAULT wtf??

This topic is 4852 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 asked another question about alt-tab, and while I haven't figured it out just yet, this is bothering me more directly. This is what I get when I try to reset the device, using DirectX8 (and Visual Basic): [1552] Direct3D8: (ERROR) :The following D3DPOOL_DEFAULT surfaces/buffers/textures still exist [1552] Direct3D8: (ERROR) : D3DRTYPE_TEXTURE Yet, I have created no textures in this pool. They are ALL managed. The phrase 'd3dpool_default' is not in my texture code at all. (If I DO load my textures into the default pool, I get the same error message 70 times over.) So my question is what is this SECRET texture??? Is it the backbuffer, or the current rendering texture, or something? I have tried D3DDevice.SetTexture 0, Nothing but this had no effect. Please help!

Share this post


Link to post
Share on other sites
Advertisement
Could be something in the font system, the sprite system, or some other system. Most of these have a function to call on device loss, and another to call on restore. Perhaps you're missing such a set of calls in a helper library that you use.

The main reason to make a texture in pool default is to make it a rendertarget, as they can't be managed, which may help you track down what it is.

Share this post


Link to post
Share on other sites
Thanks for the suggestion... I'll doublecheck, but I have my own sprite and font systems... do you know of any other subsystems, etc. that might create such a texture? This is quite annoying!

Share this post


Link to post
Share on other sites
I thoguht managed resources were kept in system memory, and didn't need to be recreated (since they aren't in video memory anyways). I am probably way wrong, though. I'll go check...

Share this post


Link to post
Share on other sites
Use the DirectX debugger's output to find the AllocID of the texture that's not getting freed. Open up your DirectX control panel and make sure you're using the DEBUG runtime with "Break on AllocID" checked and the AllocID you just found in the textbox. Rerun your program with D3D debugging and it will break as soon as it creates the texture, showing you exactly where it is.

Good luck,
ms

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • 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!