Description
We currently have the v2::DescriptorRange
inherit from the v1::DescriptorRange
and add a Flags
field, but this is incorrect. In both the 1.0 and 1.1 root signature formats, the OffsetInDescriptorsFromTableStart
comes last. That is, v1::DescriptorRange
is laid out as follows:
struct DescriptorRange {
uint32_t RangeType;
uint32_t NumDescriptors;
uint32_t BaseShaderRegister;
uint32_t RegisterSpace;
uint32_t OffsetInDescriptorsFromTableStart;
};
This matches what we have today, but v2::DescriptorRange
is laid out like so:
struct DescriptorRange {
uint32_t RangeType;
uint32_t NumDescriptors;
uint32_t BaseShaderRegister;
uint32_t RegisterSpace;
uint32_t Flags;
uint32_t OffsetInDescriptorsFromTableStart;
};
This does not match what we have today, as we have the OffsetInDescriptorsFromTableStart
and Flags
fields reversed. This causes obvious issues when we feed shaders that have root signatures with descriptor ranges into any driver.
Metadata
Metadata
Assignees
Type
Projects
Status
Closed