Método ID3D11Device2::CreateDeferredContext2 (d3d11_2.h)

Crea un contexto diferido, que puede registrar listas de comandos.

Sintaxis

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

Parámetros

ContextFlags

Tipo: UINT

Reservado para uso futuro. Pase 0.

[out, optional] ppDeferredContext

Tipo: ID3D11DeviceContext2**

Tras la finalización del método, se inicializa el puntero pasado a un puntero de interfaz ID3D11DeviceContext2 .

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente; de lo contrario, devuelve una de las siguientes opciones:

  • Devuelve DXGI_ERROR_DEVICE_REMOVED si la tarjeta de vídeo se ha quitado físicamente del sistema o se ha producido una actualización de controladores para la tarjeta de vídeo. Si se produce este error, debe destruir y volver a crear el dispositivo.
  • Devuelve DXGI_ERROR_INVALID_CALL si no se puede llamar al método CreateDeferredContext2 desde el contexto actual. Por ejemplo, si el dispositivo se creó con el valor de D3D11_CREATE_DEVICE_SINGLETHREADED , CreateDeferredContext2 devuelve DXGI_ERROR_INVALID_CALL.
  • Devuelve E_INVALIDARG si el parámetro ContextFlags no es válido.
  • Devuelve E_OUTOFMEMORY si la aplicación ha agotado la memoria disponible.

Comentarios

Un contexto diferido es un contexto seguro para subprocesos que puede usar para grabar comandos gráficos en un subproceso distinto del subproceso de representación principal. Mediante un contexto diferido, puede grabar comandos gráficos en una lista de comandos encapsulada por la interfaz ID3D11CommandList . Después de grabar todos los elementos de escena, puede enviarlos al subproceso de representación principal para la representación final. De esta manera, puede realizar tareas de representación simultáneamente en varios subprocesos y mejorar potencialmente el rendimiento en escenarios de CPU de varios núcleos.

Puede crear varios contextos diferidos.

Nota Si usa el valor de D3D11_CREATE_DEVICE_SINGLETHREADED para crear el dispositivo, CreateDeferredContext2 produce un error con DXGI_ERROR_INVALID_CALL y no puede crear un contexto diferido.
 
Para obtener más información sobre los contextos diferidos, vea Representación inmediata y diferida.

Requisitos

   
Cliente mínimo compatible Windows 8.1 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d3d11_2.h
Library D3D11.lib

Consulte también

ID3D11Device1::CreateDeferredContext1

ID3D11Device2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext