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