Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ID3D11Device2::CreateDeferredContext2 method

Creates a deferred context, which can record command lists.

Syntax


HRESULT CreateDeferredContext2(
                  UINT                 ContextFlags,
  [out, optional] ID3D11DeviceContext2 **ppDeferredContext
);

Parameters

ContextFlags

Type: UINT

Reserved for future use. Pass 0.

ppDeferredContext [out, optional]

Type: ID3D11DeviceContext2**

Upon completion of the method, the passed pointer to an ID3D11DeviceContext2 interface pointer is initialized.

Return value

Type: HRESULT

Returns S_OK if successful; otherwise, returns one of the following:

  • Returns DXGI_ERROR_DEVICE_REMOVED if the video card has been physically removed from the system, or a driver upgrade for the video card has occurred. If this error occurs, you should destroy and recreate the device.
  • Returns DXGI_ERROR_INVALID_CALL if the CreateDeferredContext2 method can't be called from the current context. For example, if the device was created with the D3D11_CREATE_DEVICE_SINGLETHREADED value, CreateDeferredContext2 returns DXGI_ERROR_INVALID_CALL.
  • Returns E_INVALIDARG if the ContextFlags parameter is invalid.
  • Returns E_OUTOFMEMORY if the app has exhausted available memory.

Remarks

A deferred context is a thread-safe context that you can use to record graphics commands on a thread other than the main rendering thread. By using a deferred context, you can record graphics commands into a command list that is encapsulated by the ID3D11CommandList interface. After you record all scene items, you can then submit them to the main render thread for final rendering. In this manner, you can perform rendering tasks concurrently across multiple threads and potentially improve performance in multi-core CPU scenarios.

You can create multiple deferred contexts.

Note   If you use the D3D11_CREATE_DEVICE_SINGLETHREADED value to create the device, CreateDeferredContext2 fails with DXGI_ERROR_INVALID_CALL, and you can't create a deferred context.
 

For more information about deferred contexts, see Immediate and Deferred Rendering.

Requirements

Minimum supported client

Windows 8.1 [desktop apps | Windows Store apps]

Minimum supported server

Windows Server 2012 R2 [desktop apps | Windows Store apps]

Header

D3D11_2.h

Library

D3D11.lib

See also

ID3D11Device2
ID3D11Device::CreateDeferredContext
ID3D11Device1::CreateDeferredContext1
ID3D11Device3::CreateDeferredContext3

 

 

Show:
© 2016 Microsoft