• Advertisement
Sign in to follow this  

Root Signature Descriptor Ranges & Registers

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

In D3D12 you can set a root parameter in a root signature to be a descriptor table, which is just a collection of descriptor ranges. 


A descriptor range is just a typed list of descriptors. You set which shader register the descriptor range sits in with D3D12_DESCRIPTOR_RANGE::BaseShaderRegister, however I am wondering what happens to all the other descriptors in the range? What register are they put into? Just the BaseShaderRegister + the current descriptor in the range?


So say I have a descriptor range like this:

range.NumDescriptors = 7;
range.BaseShaderRegister = 2;
range.RegisterSpace = 0;
range.OffsetInDescriptorsFromTableStart = 0;

Can I then assume that the descriptors will be placed in registers 2 to 8?

So I would be able to access them like this in HLSL?

Texture2D texture01 : register(t2);
Texture2D texture02 : register(t3);
Texture2D texture03 : register(t4);
Texture2D texture04 : register(t5);
Texture2D texture05 : register(t6);
Texture2D texture06 : register(t7);
Texture2D texture07 : register(t8);

Are my assumptions correct?

Share this post

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

  • Advertisement