Converts root signature description structures to a requested version.
HRESULT GetRootSignatureDescAtVersion( D3D_ROOT_SIGNATURE_VERSION convertToVersion, const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc );
Specifies the required D3D_ROOT_SIGNATURE_VERSION.
Type: const D3D12_VERSIONED_ROOT_SIGNATURE_DESC**
Contains the deserialized root signature in a D3D12_VERSIONED_ROOT_SIGNATURE_DESC structure.
This method returns an HRESULT success or error code. The method can fail with E_OUTOFMEMORY.
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.