Jump to content

  • Log In with Google      Sign In   
  • Create Account

D3D11 WARNING: ID3D10Device::CopyResource


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
8 replies to this topic

#1 AquaMacker   Members   -  Reputation: 255

Like
0Likes
Like

Posted 11 April 2014 - 12:32 AM

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, 11 April 2014 - 12:34 AM.


Sponsor:

#2 AquaMacker   Members   -  Reputation: 255

Like
0Likes
Like

Posted 11 April 2014 - 03:55 AM

Please don't pass indifferencely.
 

I use multithread. Is related to that warnning ?

Come on Guy !!!



#3 Jason Z   Crossbones+   -  Reputation: 5086

Like
1Likes
Like

Posted 11 April 2014 - 04:32 AM

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?



#4 Juliean   GDNet+   -  Reputation: 2664

Like
2Likes
Like

Posted 11 April 2014 - 04:46 AM

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, 11 April 2014 - 04:47 AM.


#5 AquaMacker   Members   -  Reputation: 255

Like
0Likes
Like

Posted 11 April 2014 - 05:21 AM

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, 11 April 2014 - 05:24 AM.


#6 Juliean   GDNet+   -  Reputation: 2664

Like
1Likes
Like

Posted 11 April 2014 - 05:43 AM


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.



#7 AquaMacker   Members   -  Reputation: 255

Like
0Likes
Like

Posted 11 April 2014 - 05:56 AM

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...



#8 SeanMiddleditch   Members   -  Reputation: 6104

Like
1Likes
Like

Posted 11 April 2014 - 12:10 PM

Thank you very much, Juliean.

I use DX10.1 (
ID3D10Device1) not DX11.

Am I change Device to [/size]

ID3D10Device ?[/size]

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.

#9 AquaMacker   Members   -  Reputation: 255

Like
0Likes
Like

Posted 12 April 2014 - 09:17 AM

VB,IB better than ID3DX10Mesh. smile.png smile.png smile.png 






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS