ID3D11On12Device2::ReturnUnderlyingResource method (d3d11on12.h)

With this method, you can return a Direct3D 11 resource object to Direct3D11On12, and indicate (by way of fences and fence signal values) when the resource will be ready for Direct3D11On12 to consume. You should call ReturnUnderlyingResource once Direct3D 12 work has been scheduled.


HRESULT ReturnUnderlyingResource(
  [in] ID3D11Resource *pResource11,
  [in] UINT           NumSync,
  [in] UINT64         *pSignalValues,
  [in] ID3D12Fence    **ppFences


[in] pResource11

Type: ID3D11Resource*

The Direct3D 11 resource object that you wish to return.

[in] NumSync

Type: UINT

The number of elements in the arrays pointed to by pSignalValues and ppFences.

[in] pSignalValues

Type: UINT64*

A pointer to an array of fence signal values.

[in] ppFences

Type: ID3D12Fence**

A pointer to an array of fence objects.

Return value


If the function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.


When you return a resource, you provide a set of fences and fence signal values whose completion indicates that the resource is back in the D3D12_RESOURCE_STATE_COMMON state, and ready for Direct3D11On12 to consume it.

In the parallel arrays pSignalValues and ppFences, include any pending work against the resource. The Direct3D11On12 translation layer defers the waits for these arguments until work is scheduled against the resource.


Minimum supported client Windows 10, version 2004 (10.0; Build 19041)
Minimum supported server Windows Server, version 2004 (10.0; Build 19041)
Header d3d11on12.h
Library D3D11.lib
DLL D3D11.dll

See also