1#pragma once
2
3#include <nn/gfx/detail/gfx_Misc.h>
4#include <nn/nn_BitTypes.h>
5
6namespace nn::gfx {
7
8struct DescriptorRangeInfoData {
9 nn::Bit8 descriptorSlotType;
10 char reserved2[3];
11 uint32_t descriptorSlotCount;
12 int32_t baseShaderSlot;
13 char reserved3[4];
14 union {
15 uint32_t bufferDescriptorSlotOffset;
16
17 struct {
18 uint32_t textureDescriptorSlotOffset;
19 uint32_t samplerDescriptorSlotOffset;
20 } textureSamplerDescriptorSlotOffset;
21 };
22 char reserved[8];
23};
24
25struct DescriptorTableInfoData {
26 Bit8 shaderStage;
27 char reserved2[3];
28 uint32_t descriptorRangeCount;
29 detail::Ptr<const DescriptorRangeInfoData> pDescriptorRangeArray;
30 char reserved[16];
31};
32
33struct DynamicDescriptorInfoData {
34 Bit8 shaderStage;
35 char reserved2[3];
36 int32_t shaderSlot;
37 char reserved[8];
38};
39
40struct RootSignatureInfoData {
41 uint32_t descriptorTableCount;
42 uint32_t dynamicDescriptorCount;
43 detail::Ptr<const DescriptorTableInfoData> pDescriptorTableArray;
44 detail::Ptr<const DynamicDescriptorInfoData> pDynamicDescriptorArray;
45 char reserved[40];
46};
47
48} // namespace nn::gfx
49