Skip to main content
Converts root signature description structures to a requested version.

Syntax

Parameters

convertToVersion
Type: D3D_ROOT_SIGNATURE_VERSION
Specifies the required D3D_ROOT_SIGNATURE_VERSION. ppDesc [out]
Type: const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **
Contains the deserialized root signature in a D3D12_VERSIONED_ROOT_SIGNATURE_DESC 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 and D3D12_ROOT_DESCRIPTOR_FLAGS 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 Root Signature Version 1.1
Last modified on August 20, 2026