• Advertisement
Sign in to follow this  

D3D11 WARNING: ID3D10Device::CopyResource

This topic is 1379 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

HI

 

D3D11 WARNING: ID3D10Device::CopyResource: This ID3D10Device[1] method of the immediate context is locked out because an ID3D11Device[1] device context state is active. [ STATE_SETTING WARNING #3145945: DEVICE_LOCKEDOUT_INTERFACE]
 

Have you ever seen before this warning message in output window ?

What the hell....?!

In My All source there is no CopyResource
I Don't know where to find that error message.

Is that no big trouble ?
That warning comes out my program slower.
I guess that warning is big problem !!!

How can I fix that warning ?

Thanks in advance. smile.png
 

 

Edited by AquaMacker

Share this post


Link to post
Share on other sites
Advertisement

Please don't pass indifferencely.
 

I use multithread. Is related to that warnning ?

Come on Guy !!!

Share this post


Link to post
Share on other sites

Somehow you are calling a D3D10 Device method.  Behind the COM interface is an object that may or may not implement multiple of the device interfaces, so it isn't alarming to see this type of message.  My guess is that you have accidentally acquired a D3D10 device when you meant to get an 11 device.

 

Can you show the code where you create your device, and the declaration of the device COM pointer that is causing this warning message to come up?

Share this post


Link to post
Share on other sites

In the directx-control panel, in the Direct3D 10.x/11-tab, go to "Break Settings" an "Enable break on functionality", also tick "warning". Now you should see at least the line where this warning is issued, unless you got any other warnings that are issued before that.

 

EDIT: You also need to add your application to the list in "Edit list" on that page.

Edited by Juliean

Share this post


Link to post
Share on other sites

Thanks I found !!!

hr = 
D3DX10CreateMesh( pDevice, stVertex::pInputElementDesc, stVertex::nNumElements,
stVertex::pInputElementDesc[0].SemanticName,
36, 12,
D3DX10_MESH_32_BIT,
&pMesh );

pMesh->SetVertexData( 0, vertices );
pMesh->SetIndexData( indices, nIndexCount );

pMesh->GenerateAdjacencyAndPointReps( 0.001f );
pMesh->Optimize( D3DX10_MESHOPT_ATTR_SORT | D3DX10_MESHOPT_VERTEX_CACHE, 0, 0 );
pMesh->CommitToDevice() !!! <- that warning point 

This part is so simple box making source. so simple so simple.
Vertex number 36, index number is 12.
Vertex values is wrong ? hr is S_OK.

I don't understand.


I use ID3D10Device1* pDevice. Is related ?

Edited by AquaMacker

Share this post


Link to post
Share on other sites


D3DX10CreateMesh

 

This is DirectX10 functionality, so thats at least why the DX10-function in the warning is called. I don't think this function still works for DX11, from what I know DX11 doesn't have a default mesh class, you have to write yourself one and do the vertex buffer loading manually, or use e.g. DXUT-mesh or something like that.

Share this post


Link to post
Share on other sites

Thank you very much, Juliean.

But my english is so bad.

I use DX10.1 (
ID3D10Device1) not DX11.

Am I change Device to 
ID3D10Device ?

and that source is I loading VB manually.

I'm sorry for my bad english...

Share this post


Link to post
Share on other sites

[size=3]Thank you very much, Juliean.

I use DX10.1 (
[/size][background=#fafbfc]ID3D10Device1) not DX11.

Am I change Device to [/size][/background]

[background=#fafbfc]ID3D10Device ?[/size][/background]

Use D3D10CreateDeviceAndSwapChain1 which creates an ID3D10Device1

Though there is absolutely no good reason to use DirectX 10. The only OS that supports 10 but not 11 is early un-patched Vista. You can use Direct3D11 on older hardware by setting a feature level, so you can ask Direct3D11 to limit itself to features supported by D3D9, D3D10, or D3D10.1 features. When doing so, you are still using the Direct3D11 API and cannot mix in old Direct3D10 code.

Share this post


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

  • Advertisement