cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

cippyboy
Journeyman III

D3D11 Command Lists pause the immediate context ?

I recently tried out the D3D11 Command Lists feature on 4 threads and observed a decrease in performance. After using GPU Perf Studio I was shocked to see how all threads (immediate + deferred) wait for FinishCommandList calls . That's basically the reason why I'm seeing slower performance, with 1+ deferred contexts the driver actually stops rendering on the immediate context. You can also observe from the image attached that FinishCommandList cannot execute in parallel so each call waits on the other one(s). I do hope this will somehow change in D3D12 as I was having the impression that Command Lists will be the norm there.

0 Likes
2 Replies
Lonesled
Staff

Hi, the advantage of command lists lies in two areas. 1) multi-threaded creation and 2) multiple re-use of previously created command lists (i.e. create once using many API calls and play back using only 1 API). If you have to re-create all of the command lists every frame then you probably will not see any perf gain.

0 Likes

Well, ok, but you can clearly see that multithreaded creation is a big problem. While 4 lists are being created in "parallel", the immediate context just idles and doesn't execute anything. So my question is, why would the immediate context pause while the command lists are generated ?

0 Likes