Compartir a través de


estructura D3DDDICB_SUBMITCOMMAND (d3dumddi.h)

La estructura D3DDDICB_SUBMITCOMMAND se usa para enviar búferes de comandos en contextos que admiten direccionamiento virtual de unidad de procesamiento gráfico (GPU).

Sintaxis

typedef struct _D3DDDICB_SUBMITCOMMAND {
  D3DGPU_VIRTUAL_ADDRESS      Commands;
  UINT                        CommandLength;
  D3DDDICB_SUBMITCOMMANDFLAGS Flags;
  UINT                        BroadcastContextCount;
  HANDLE                      BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  VOID                        *pPrivateDriverData;
  UINT                        PrivateDriverDataSize;
  UINT                        NumPrimaries;
  D3DKMT_HANDLE               WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES];
  D3DDDI_MARKERLOGTYPE        MarkerLogType;
  UINT                        RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
  UINT                        Reserved;
  UINT                        NumHistoryBuffers;
  D3DKMT_HANDLE               *HistoryBufferArray;
  HANDLE                      hSyncToken;
  void                        *pReserved;
} D3DDDICB_SUBMITCOMMAND;

Miembros

Commands

Dirección virtual de GPU a los comandos que se envían al contexto para su ejecución. Esta información se proporciona al controlador del modo kernel durante el envío del comando y también se usa con fines de depuración.

CommandLength

Especifica la longitud, en bytes, de los comandos que se envían a la GPU. Esta información se proporciona al controlador del modo kernel durante el envío del comando y también se usa con fines de depuración.

Flags

Instancia de la estructura D3DDDICB_SUBMITCOMMANDFLAGS.

BroadcastContextCount

Especifica el número de contexto al que se debe enviar este comando. Este recuento debe ser al menos 1.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Especifica el identificador del contexto para ejecutar los comandos especificados.

pPrivateDriverData

Puntero a los datos privados del controlador que se van a pasar al controlador del modo kernel como parte de este envío.

PrivateDriverDataSize

Tamaño de la información de datos del controlador privado que se pasa. Este tamaño debe ser menor que el tamaño solicitado por el controlador de modo kernel para enviar datos del controlador privado.

NumPrimaries

Especifica el número de búferes principales y back-chain de intercambio escritos en los comandos enviados. Esto es igual al número de asignaciones de la matriz WrittenPrimaries.

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

Matrices de identificadores de los búferes principales y de la cadena de intercambio que escriben los comandos enviados.

MarkerLogType

Enumeración D3DDDI_MARKERLOGTYPE que indica el tipo de marcador en el registro seguimiento de eventos para Windows (ETW) que admite el controlador de visualización en modo de usuario.

RenderCBSequence

Identificador único para cada llamada de función pfnRenderCb. Comienza en un valor de 1 para los contextos asociados a DDIs y intervalos en modo de usuario de un solo subproceso a un valor de 0x80000001 para contextos asociados a DDIs de modo de usuario sin subprocesos. El controlador de pantalla en modo de usuario debe incrementar el valor de cada pfnRenderCb llamada que realiza en cualquier motor.

FirstAPISequenceNumberHigh

Usado por el controlador para pasar el número de secuencia de API del contexto.

CompletedAPISequenceNumberLow0Size

Usado por el controlador para pasar el número de secuencia de API del contexto.

CompletedAPISequenceNumberLow1Size

Usado por el controlador para pasar el número de secuencia de API del contexto.

BegunAPISequenceNumberLow0Size

Usado por el controlador para pasar el número de secuencia de API del contexto.

BegunAPISequenceNumberLow1Size

Usado por el controlador para pasar el número de secuencia de API del contexto.

BatchedMarkerDataCount

Lo usa el controlador para pasar el recuento de datos de marcador por lotes del contexto.

pCompletedAPISequenceNumberLow0

Puntero usado por el controlador para pasar el número de secuencia de API del contexto.

pCompletedAPISequenceNumberLow1

Puntero usado por el controlador para pasar el número de secuencia de API del contexto.

pBegunAPISequenceNumberLow0

Puntero usado por el controlador para pasar el número de secuencia de API del contexto.

pBegunAPISequenceNumberLow1

Puntero usado por el controlador para pasar el número de secuencia de API del contexto.

pBatchedMarkerData

Puntero utilizado por el controlador para pasar los datos del marcador por lotes del contexto.

Reserved

Este miembro está reservado y debe establecerse en cero.

NumHistoryBuffers

Número de búferes de historial.

HistoryBufferArray

Puntero a la matriz de búferes de historial.

hSyncToken

pReserved

Observaciones

El pfnSubmitCommandCb ruta de acceso de código ya no proporciona una lista de asignación para que el controlador del modo de usuario proporcione una lista de asignaciones que se leerán y escribirán en durante este comando. Sin embargo, es necesario sincronizar algunas escrituras que normalmente no se conocerían sin la lista de asignación. Para ello, una nueva lista de asignación pequeña específicamente para superficies que se escribirán en y se usarán para mostrar contenido. La matriz WrittenPrimaries debe usarse para proporcionar dichas asignaciones.

A pesar del nombre, WrittenPrimaries debe contener asignaciones que se consideran SwapChainBackBuffer asignaciones según el tiempo de ejecución además de las principales. Esto se expone al controlador en modo de usuario mediante una nueva marca en D3D10_DDI_RESOURCE_MISC_FLAG. El tiempo de ejecución proporcionará la marca de D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE al controlador en modo de usuario durante las llamadas para crear un recurso o montón que se crea como una cadena de intercambio FlipEx o principal. El controlador puede usar esta marca para determinar todas las asignaciones que se deben colocar en la writtenPrimaries lista de Microsoft Direct3D 11. Otros entornos de ejecución no han cambiado.

Si el controlador recibe una llamada a createResource que tiene esta marca, la asignación se debe agregar a esta lista en cada pfnSubmitCommandCb llamada que escribe en la superficie.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
servidor mínimo admitido Windows Server 2016
encabezado de d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb