D3DDDICB_SUBMITCOMMAND struttura (d3dumddi.h)
La struttura D3DDDICB_SUBMITCOMMAND viene usata per inviare i buffer dei comandi nei contesti che supportano l'indirizzamento virtuale dell'unità di elaborazione grafica (GPU).
Sintassi
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;
Members
Commands
Indirizzo virtuale GPU ai comandi inviati al contesto per l'esecuzione. Queste informazioni vengono fornite al driver in modalità kernel durante l'invio dei comandi e vengono usate anche per scopi di debug.
CommandLength
Specifica la lunghezza, in byte, dei comandi inviati alla GPU. Queste informazioni vengono fornite al driver in modalità kernel durante l'invio dei comandi e vengono usate anche per scopi di debug.
Flags
Istanza della struttura di D3DDDICB_SUBMITCOMMANDFLAGS .
BroadcastContextCount
Specifica il numero di contesto a cui deve essere inviato il comando. Questo conteggio deve essere almeno 1.
BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]
Specifica l'handle del contesto per eseguire i comandi specificati.
pPrivateDriverData
Puntatore ai dati privati del driver da passare al driver in modalità kernel come parte di questo invio.
PrivateDriverDataSize
Dimensioni delle informazioni sui dati del driver privato passate. Questa dimensione deve essere inferiore alla dimensione richiesta dal driver in modalità kernel per l'invio dei dati del driver privato.
NumPrimaries
Specifica il numero di primaries e buffer back swapchain scritti dai comandi inviati. Uguale al numero di allocazioni nella matrice WrittenPrimary .
WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]
Matrici di handle per le primarie e i buffer back swapchain scritti dai comandi inviati.
MarkerLogType
Un'enumerazione D3DDDI_MARKERLOGTYPE che indica il tipo di marcatore nel log di Traccia eventi per Windows (ETW) supportato dal driver di visualizzazione in modalità utente.
RenderCBSequence
Identificatore univoco per ogni chiamata di funzione pfnRenderCb . Inizia a un valore pari a 1 per i contesti associati alle DDI in modalità utente a thread singolo e agli intervalli a un valore di 0x80000001 per i contesti associati alle DDI in modalità utente a thread libero. Il driver di visualizzazione in modalità utente deve aumentare il valore per ogni chiamata pfnRenderCb in qualsiasi motore.
FirstAPISequenceNumberHigh
Usato dal driver per passare il numero di sequenza api del contesto.
CompletedAPISequenceNumberLow0Size
Usato dal driver per passare il numero di sequenza api del contesto.
CompletedAPISequenceNumberLow1Size
Usato dal driver per passare il numero di sequenza api del contesto.
BegunAPISequenceNumberLow0Size
Usato dal driver per passare il numero di sequenza api del contesto.
BegunAPISequenceNumberLow1Size
Usato dal driver per passare il numero di sequenza api del contesto.
BatchedMarkerDataCount
Usato dal driver per passare il conteggio dei dati del marcatore in batch del contesto.
pCompletedAPISequenceNumberLow0
Puntatore usato dal driver per passare il numero di sequenza dell'API del contesto.
pCompletedAPISequenceNumberLow1
Puntatore usato dal driver per passare il numero di sequenza dell'API del contesto.
pBegunAPISequenceNumberLow0
Puntatore usato dal driver per passare il numero di sequenza dell'API del contesto.
pBegunAPISequenceNumberLow1
Puntatore usato dal driver per passare il numero di sequenza dell'API del contesto.
pBatchedMarkerData
Puntatore usato dal driver per passare i dati del marcatore batch del contesto.
Reserved
Questo membro è riservato e deve essere impostato su zero.
NumHistoryBuffers
Numero di buffer di cronologia.
HistoryBufferArray
Puntatore alla matrice di buffer di cronologia.
hSyncToken
pReserved
Commenti
Il percorso del codice pfnSubmitCommandCb non fornisce più un elenco di allocazioni per il driver in modalità utente per fornire un elenco di allocazioni che verranno letti e scritti in durante questo comando. Tuttavia, è necessario sincronizzare alcune scritture che normalmente non sarebbero note senza l'elenco di allocazioni. Per questo motivo, un nuovo elenco di allocazione di piccole dimensioni specificamente per le superfici che verranno scritte in e usate per la visualizzazione del contenuto. La matrice WrittenPrimary deve essere usata per fornire tali allocazioni.
Nonostante il nome , WritePrimary deve contenere allocazioni considerate allocazioni SwapChainBackBuffer in base al runtime oltre alle primarie. Questa operazione viene esposta al driver in modalità utente da un nuovo flag in D3D10_DDI_RESOURCE_MISC_FLAG. Il runtime fornirà il flag D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE al driver in modalità utente durante le chiamate per creare una risorsa o un heap creato come flipEx swapchain o primario. Il driver può usare questo flag per determinare tutte le allocazioni che devono essere inserite nell'elenco WrittenPrimary per Microsoft Direct3D 11. Altri runtime non sono stati modificati.
Se il driver riceve una chiamata a CreateResource con questo flag, l'allocazione deve essere aggiunta a questo elenco in ogni chiamata pfnSubmitCommandCb che scrive nella superficie.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 |
Server minimo supportato | Windows Server 2016 |
Intestazione | d3dumddi.h (include D3dumddi.h) |