ExecuteCommandList on deferred context fails on NVIDIA.

Hello. I’m unable to merge command lists from two deferred contexts with ExecuteCommandList.
Every time I get “Access violation reading location 0x00000000.”
Here is the sequence of calls:

ID3D11DeviceContext *pDefferedContext=NULL;
ID3D11DeviceContext *pDefferedContext2=NULL;
//some operations on both contexts unrelated one from another
//here m_commandList is NULL
HRESULT hr = pDefferedContext->FinishCommandList(FALSE,&m_commandlist);//This line succeeds and m_commandlist != NULL after it;
//The line below is supposed to merge commands from both contexts
pDefferedContext2->ExecuteCommandList(m_commandlist,FALSE);//Here I get access violation

For sure there are no other calls on m_commandlist from other threads and there is now call on immediate context with executecommandlist between these two calls. There is also no difference if both deferred context are in the same or different threads (of course access to m_commandlist is guarded with critical section).
What could be wrong in this case? Is there a bug here?
Thanks for any help.

Hi Zachar,

I reported this issue to Nvidia back in March of this year and was told it might take a little time to fix. I’m actually already chasing up this bug with my contact (for personal interest) but when I hear back I can update this post if it’s still of relevance to you.


hello Adam.
Thank you for your response. I will be grateful for any update on this as this issue makes impossible to use NVIDIA cards and we have to stick to AMD.