All Textures in Use, Cannot Evict Texture

All Textures in Use, Cannot Evict Texture

Post by Raeldo » Fri, 02 Sep 2005 15:35:17



I am getting this error message in my program from Direct3D and I am not
sure exactly what is causing it.

My textures are created with D3DUSAGE_AUTOGENMIPMAP and D3DPOOL_MANAGED.

Is this error coming fomr the graphics card because all the texture memory
is full? I thought managed meant it swaped in and out as needed?


When a texture is set in a texture stage and then drawprimitive is called,
and then you use the same stage to set a different texture and then make
another call to drawprimitive, I assume that if there is not enough video
memory it will move the old texture out of video memory if you are using
POOL_MANAGED?

Is this correct?

Also, as a test I put an EvictManagedResources call in, which got rid of the
problem but killed the performance (as you would expect). My question is,
why isn't the direct3d managed pool code removing the old texture from the
previous drawprimitive by itself if there is no room in video memory!?
 
 
 

All Textures in Use, Cannot Evict Texture

Post by v-raygo » Fri, 02 Sep 2005 19:23:30

Hello Raeldor,
I have never seen "All Textures in Use, Cannot Evict Texture" error before. Could you point me what d3d error it corresponds directly?
To isolate the problem, could you try following tests and let me know your results please?
1> please remove D3DUSAGE_AUTOGENMIPMAP and run your code again, do you still get the same error?
2> what is size of your video memory? and how may times "a texture is set in a texture stage and then drawprimitive is called" is done?
3> please try reduce the texture size into 1/2 and run your code again. does the times you run "a texture is set in a texture stage and then drawprimitive is called" double?
4> if you can reproduce this problem consistently, could you post a simple repro code here to let me try?

Thanks very much for your patience,
Rhett Gong [MSFT]
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
http://www.yqcomputer.com/

This posting is provided "AS IS" with no warranties and confers no rights.

 
 
 

All Textures in Use, Cannot Evict Texture

Post by legalize+j » Sat, 03 Sep 2005 05:24:20

[Please do not mail me a copy of your followup]

"Raeldor" < XXXX@XXXXX.COM > spake the secret code
< XXXX@XXXXX.COM > thusly:


Standard questions apply:

- debug runtime installed?
- debug runtime selected?
- relevant messages appear in the debug output when?

--
"The Direct3D Graphics Pipeline"-- code samples, sample chapter, FAQ:
< http://www.yqcomputer.com/ ~legalize/book/>
Pilgrimage: Utah's annual demoparty
< http://www.yqcomputer.com/ >
 
 
 

All Textures in Use, Cannot Evict Texture

Post by Raeldo » Sat, 03 Sep 2005 07:21:01

Debug runtime installed and selected. Error occurs on DrawPrimitive call.

"Richard [Microsoft Direct3D MVP]" <legalize+ XXXX@XXXXX.COM > wrote
 
 
 

All Textures in Use, Cannot Evict Texture

Post by legalize+j » Sun, 04 Sep 2005 07:08:29

[Please do not mail me a copy of your followup]

"Raeldor" < XXXX@XXXXX.COM > spake the secret code
<# XXXX@XXXXX.COM > thusly:


Do you get the same error on REF?
--
"The Direct3D Graphics Pipeline"-- code samples, sample chapter, FAQ:
< http://www.yqcomputer.com/ ~legalize/book/>
Pilgrimage: Utah's annual demoparty
< http://www.yqcomputer.com/ >