> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GetRootSignatureDescAtVersion

> Converts root signature description structures to a requested version.

Converts root signature description structures to a requested version.

## Syntax

```cpp theme={null}
HRESULT GetRootSignatureDescAtVersion(
    D3D_ROOT_SIGNATURE_VERSION convertToVersion,
    const D3D12_VERSIONED_ROOT_SIGNATURE_DESC  ppDesc
)
```

### Parameters

*convertToVersion*\
Type: **[D3D\_ROOT\_SIGNATURE\_VERSION](/reference/graphics/d3d12/enums/d3d_root_signature_version_public)**

Specifies the required [D3D\_ROOT\_SIGNATURE\_VERSION](/reference/graphics/d3d12/enums/d3d_root_signature_version_public).

*ppDesc \[out]*\
Type: const D3D12\_VERSIONED\_ROOT\_SIGNATURE\_DESC \*\*

Contains the deserialized root signature in a  [D3D12\_VERSIONED\_ROOT\_SIGNATURE\_DESC](/reference/graphics/d3d12/structs/d3d12_versioned_root_signature_desc_public) structure.

### Return value

Type: HRESULT

This method returns an HRESULT success or error code. The method can fail with E\_OUTOFMEMORY.

## Remarks

This method allocates additional storage if needed for the converted root signature (memory owned by the deserializer interface).  If conversion is done, the deserializer interface doesn't free the original deserialized root signature memory - all versions the interface has been asked to convert to are available until the deserializer is destroyed.

Converting a root signature from 1.1 to 1.0 will drop all [D3D12\_DESCRIPTOR\_RANGE\_FLAGS](/reference/graphics/d3d12/enums/d3d12_descriptor_range_flags_public) and [D3D12\_ROOT\_DESCRIPTOR\_FLAGS](/reference/graphics/d3d12/enums/d3d12_root_descriptor_flags_public) can be useful for generating compatible root signatures that need to run on old operating systems, though does lose optimization opportunities.  For instance, multiple root signature versions can be serialized and stored with application assets, with the appropriate version used at runtime based on the operating system capabilities.

Converting a root signature from 1.0 to 1.1 just adds the appropriate flags to match 1.0 semantics.

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

[ID3D12VersionedRootSignatureDeserializer](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/id3d12versionedrootsignaturedeserializer_public)

[Root Signature Version 1.1](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/root-signature-version-1-1)


## Related topics

- [D3D_ROOT_SIGNATURE_VERSION](/reference/graphics/d3d12/enums/d3d_root_signature_version_public.md)
- [D3D12_VERSIONED_ROOT_SIGNATURE_DESC](/reference/graphics/d3d12/structs/d3d12_versioned_root_signature_desc_public.md)
- [D3D12CreateVersionedRootSignatureDeserializer](/reference/graphics/d3d12/functions/d3d12createversionedrootsignaturedeserializer_public.md)
- [GetUnconvertedRootSignatureDesc](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getunconvertedrootsignaturedesc_public.md)
- [GetRootSignatureDesc](/reference/graphics/d3d12/interfaces/id3d12rootsignaturedeserializer/methods/id3d12rootsignaturedeserializer_getrootsignaturedesc_public.md)
