Jump to content
  • Advertisement
Sign in to follow this  
Shnoutz

DX12 [DX12] Updating a descriptor heap using a command list?

This topic is 856 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,

 

Is there a way to update a (GPU visible) descriptor in a heap from a command list?

 

As an exemple, I have a list of 100 texture descriptors:

 

- Draw call 1 uses this list.

- Modify one of the descriptor (lets say, descriptor #17)... something like "commandList->UpdateDescriptor(descHeap, 17, srvDesc)"

- Draw call 2 uses the modified list.

 

As I understand, descriptors are managed from the CPU and to be sure I do not modify something the GPU may be using I would need to create a brand new list of 100 descriptors with only one of them modified.

 

- Draw call 1 uses first list.

- Create a second list of 100 descriptors with #17 different from first list.

- Draw call 2 uses the second list.

 

That does not look too bad but I have a feeling that scaling the number of descriptors to 10k can become problematic.

 

Hopefully you can understand what I mean...

 

Thanks.

Share this post


Link to post
Share on other sites
Advertisement

Currently no, there is no way to do what you want. If you want to have per-draw lists, keep them small so that renaming them is cheap. If you want large lists, consider just using new elements instead of replacing them in place.

Share this post


Link to post
Share on other sites
I bet it's like this because of limitations of some hardware (Intel? NVIDIA?)..
It's a pity because it makes things a lot harder then they should be.

Share this post


Link to post
Share on other sites

I'm afraid I don't have anything to share regarding future plans for this area, but this isn't the first time we've heard this request and we'll take it under advisement.

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!