ID3D12VersionedRootSignatureDeserializer::GetRootSignatureDescAtVersion method

Converts root signature description structures to a requested version.

Syntax

HRESULT GetRootSignatureDescAtVersion(
  D3D_ROOT_SIGNATURE_VERSION                convertToVersion,
  const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc
);

Parameters

convertToVersion

Type: D3D_ROOT_SIGNATURE_VERSION

Specifies the required D3D_ROOT_SIGNATURE_VERSION.

ppDesc

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

   
Target Platform Windows
Header d3d12.h
Library D3d12.lib
DLL D3d12.dll

See Also

ID3D12VersionedRootSignatureDeserializer

Root Signature Version 1.1