diff --git a/dlls/d3d12/d3d12.spec b/dlls/d3d12/d3d12.spec index 9e798916658..5c4f4cfecf8 100644 --- a/dlls/d3d12/d3d12.spec +++ b/dlls/d3d12/d3d12.spec @@ -7,3 +7,5 @@ @ stdcall D3D12CreateRootSignatureDeserializer(ptr long ptr ptr) @ stdcall D3D12SerializeRootSignature(ptr long ptr ptr) @ stdcall D3D12EnableExperimentalFeatures(long ptr ptr ptr) +#@ stub D3D12CreateVersionedRootSignatureDeserializer +@ stdcall D3D12SerializeVersionedRootSignature(ptr ptr ptr) diff --git a/dlls/d3d12/d3d12_main.c b/dlls/d3d12/d3d12_main.c index 92a235ee5f7..d6d691c3c23 100644 --- a/dlls/d3d12/d3d12_main.c +++ b/dlls/d3d12/d3d12_main.c @@ -182,3 +182,16 @@ HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root return vkd3d_serialize_root_signature(root_signature_desc, version, blob, error_blob); } + +HRESULT WINAPI D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc, + ID3DBlob **blob, ID3DBlob **error_blob) +{ + FIXME("desc %p, blob %p, error_blob %p partial-stub!\n", + desc, blob, error_blob); + + if (desc->Version == D3D_ROOT_SIGNATURE_VERSION_1_0) + return D3D12SerializeRootSignature(&desc->Desc_1_0, desc->Version, blob, error_blob); + + FIXME("Unsupported version %#x.\n", desc->Version); + return E_NOTIMPL; +} diff --git a/include/d3d12.idl b/include/d3d12.idl index 307a4fd375c..3a5a9141e84 100644 --- a/include/d3d12.idl +++ b/include/d3d12.idl @@ -2171,6 +2171,10 @@ interface ID3D12RootSignatureDeserializer : IUnknown const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc, ID3DBlob **blob, ID3DBlob **error_blob); +[local] HRESULT __stdcall D3D12SerializeVersionedRootSignature( + const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc, + ID3DBlob **blob, ID3DBlob **error_blob); + typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter, D3D_FEATURE_LEVEL minimum_feature_level, REFIID iid, void **device);