-Joe
why can they persist thru a lost device and you cant?
does the debug runtime output tell you anything?
"jbacigal" <jbac...@discussions.microsoft.com> wrote in message
news:324C16C8-AF76-4355...@microsoft.com...
Since we've made sure to use managed pools with all our objects, it seems to
us to be a bug in the D3DX library...
"Phil Taylor" <ph...@private-citizen.com> wrote in message
news:evHtiihC...@TK2MSFTNGP09.phx.gbl...
Are you sure it's the meshes? Try writing the simplest program you can
which recreates the problem.
I've had several cases when I thought that I had everything in the
managed pool and therefore my program was safe, and then it turned out
that I wasn't releasing render targets correctly, or was using state
blocks (IIRC these need to be recreated). If I'm not misremembering,
even vertex declarations need to be recreated (though not shaders).
Eyal
use the break-on-alloc-id feature of the control panel to figure out what is
being allocated that D3D thinks still has a reference.
usually just from whose is at fault you can figure out how an extra
ref-count got added then to some object, causing a single Release() to not
be enough.
"Rioshin an'Harthen" <rio...@breakthru.com> wrote in message
news:O0JiB2i...@TK2MSFTNGP09.phx.gbl...
It's definitely the meshes. Rigorous testing of the game engine causes the
device reset to fail only when meshes have been loaded - without the meshes
alt-tabbing etc. works as expected.
Our team is positive we're calling D3DXLoadMeshFromX with the Options DWORD
as D3DXMESH_MANAGED (ie. D3DXMESH_VB_MANAGED | D3DXMESH_IB_MANAGED), and
checking through Mesh.cpp I see we certainly pass 544 into it. Note the
numeric format, since we're using configuration files that can override
defaults, although no configuration file contains a line for the options at
the moment.
I don't see this as totally convincing evidence, since I have no idea
what other things are done apart from loading the meshes. If you only
add a single D3DXLoadMeshFromX (into managed memory) to your program,
but do nothing with it (i.e., it's not loaded the same as you normally
load and isn't rendered at all) and don't load the meshes you normally
render, does this still cause a problem with the reset?
Eyal
I was wrong on this account. They need not be recreated.
Eyal