Skip to main content
Deserializes a root signature so you can determine the layout definition (D3D12_ROOT_SIGNATURE_DESC).

Syntax

Parameters

pSrcData [in]
Type: LPCVOID
A pointer to the source data for the serialized root signature. SrcDataSizeInBytes [in]
Type: SIZE_T
The size, in bytes, of the block of memory that pSrcData points to. pRootSignatureDeserializerInterface [in]
Type: const IID &
The globally unique identifier (GUID) for the root signature deserializer interface. See remarks. ppRootSignatureDeserializer [out]
Type: void **
A pointer to a memory block that receives a pointer to the root signature deserializer.

Return value

Type: HRESULT Returns S_OK if successful; otherwise, returns one of the Direct3D 12 Return Codes.

Remarks

This function has been superseded by D3D12CreateVersionedRootSignatureDeserializer. If an application has a serialized root signature already or has a compiled shader that contains a root signature and wants to determine the layout definition, it can call D3D12CreateRootSignatureDeserializer to generate a ID3D12RootSignatureDeserializer interface. ID3D12RootSignatureDeserializer::GetRootSignature can return the deserialized data structure (D3D12_ROOT_SIGNATURE_DESC). ID3D12RootSignatureDeserializer just owns the lifetime of the memory for the deserialized data structure. The REFIID, or GUID, of the interface to the root signature deserializer can be obtained by using the __uuidof() macro. For example, __uuidof(ID3D12RootSignatureDeserializer) will get the GUID of the interface to a root signature deserializer. The function signature PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER is provided as a typedef, so that you can use dynamic linking techniques (GetProcAddress) instead of statically linking.

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

Core Functions Creating a Root Signature
Last modified on August 20, 2026