Jump to content
  • Advertisement
Sign in to follow this  
_void_

[D3D12] Multiple command queues

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

Hello!

 

D3D 12 offers three types of command queues: graphics, compute and copy.

I am wondering how many of them could you use simultaneously to parallel work in practice.

 

1.Aysnc compute (graphics + compute) queues. I remember reading at this forum that NVidia and Intel do not really support this on the hardware level.

You are, indeed, able to create graphics and compute queues and issue the commands but they will be processesed on the same hardware queue. AMD, if I am not mistaken, does support this natively.

 

2.Does it make sense to have two graphics queue? For instance, to render shadow maps for spot and point lights on different queues concurrently.

 

Share this post


Link to post
Share on other sites
Advertisement

As for copy queues, I'd assume that every vendor can benefit from you having one of these. Some GPU's may support more than one...

 

This, but remember that copy-queues should have lower bandwidth compared to graphics queue (at least on actual hardware). They are great for concurrency and background works, but for the shortest job to be down it is better to use the graphics queue. I am not sure how they compare against compute queues, but I cannot imagine a scenario where is better to use compute queues instead of graphics queues for immediate copy operations only.

Edited by Alessio1989

Share this post


Link to post
Share on other sites

Last public reference are the one of Intel, telling what you say, and a short reference speaking about multi-GPU scenarios (where different scenarios are to be considered on both linked and unlinked adapters). Anyway it was told in different occasion that the best answer is always the same: profile!

 

EDIT: you are right about PCI-E transfer optimization, at least as AMD suggest for its own GPUs.

 

EDIT2: at least some NVIDIA GPUs have some performance limitations:

 

 

NVIDIA: Take care when copying depth+stencil resources – copying only depth may hit slow path

 

https://developer.nvidia.com/sites/default/files/akamai/gameworks/blog/GDC16/GDC16_gthomas_adunn_Practical_DX12.pdf

 

Anyway, probably I am confusing myself with older and not-public documentations...

Edited by Alessio1989

Share this post


Link to post
Share on other sites

Anyway, probably I am confusing myself with older and not-public documentations...

No you're not, I distinctly remember something public where the throughput of the copy queue was less then that of using the graphics hardware to perform the transfer.  There was no explanation as to why.  I can't remember where its from though, although it might be older as you say.

Share this post


Link to post
Share on other sites

Thank you guys for the explanation and examples! Definitely, I have better understanding now.

Share this post


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

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!