Quantcast
Channel: GameDev.net
Viewing all articles
Browse latest Browse all 17560

Root Signature Descriptor Ranges & Registers

$
0
0

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:

D3D12_DESCRIPTOR_RANGE range;
range.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV;
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?


Viewing all articles
Browse latest Browse all 17560

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>