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) |