Share via


estructura D3DDDICB_SUBMITCOMMAND (d3dumddi.h)

La estructura D3DDDICB_SUBMITCOMMAND se usa para enviar búferes de comandos en contextos que admiten el direccionamiento virtual de la 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 de 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 de 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 en 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 de reserva principal y de cadena de intercambio en los que escriben los comandos enviados. Es igual al número de asignaciones de la matriz WrittenPrimaries .

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

Las matrices de identificadores de los búferes de reserva principal y de la cadena de intercambio se escriben en 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 los DDIs en modo de usuario de un solo subproceso y los intervalos a un valor de 0x80000001 para los contextos asociados a los DDIs de modo de usuario sin subprocesos. El controlador de pantalla en modo de usuario debe incrementar el valor de cada llamada pfnRenderCb que realiza en cualquier motor.

FirstAPISequenceNumberHigh

Lo usa el controlador para pasar el número de secuencia de LA API del contexto.

CompletedAPISequenceNumberLow0Size

Lo usa el controlador para pasar el número de secuencia de LA API del contexto.

CompletedAPISequenceNumberLow1Size

Lo usa el controlador para pasar el número de secuencia de LA API del contexto.

BegunAPISequenceNumberLow0Size

Lo usa el controlador para pasar el número de secuencia de LA API del contexto.

BegunAPISequenceNumberLow1Size

Lo usa el controlador para pasar el número de secuencia de LA API del contexto.

BatchedMarkerDataCount

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

pCompletedAPISequenceNumberLow0

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

pCompletedAPISequenceNumberLow1

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

pBegunAPISequenceNumberLow0

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

pBegunAPISequenceNumberLow1

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

pBatchedMarkerData

Puntero utilizado por el controlador para pasar los datos de 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 del historial.

hSyncToken

pReserved

Comentarios

La ruta de acceso de código pfnSubmitCommandCb ya no proporciona una lista de asignación para que el controlador de 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 asignaciones pequeña específicamente para superficies que se escribirán en y se usarán para mostrar el contenido. La matriz WrittenPrimaries debe usarse para proporcionar estas asignaciones.

A pesar del nombre, WrittenPrimaries debe contener asignaciones que se consideran asignaciones SwapChainBackBuffer 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 D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE al controlador en modo de usuario durante las llamadas para crear un recurso o montón que se cree 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 lista WrittenPrimaries 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 llamada pfnSubmitCommandCb que escribe en la superficie.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Servidor mínimo compatible Windows Server 2016
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb