Condividi tramite


struttura D3DDDICB_SUBMITCOMMAND (d3dumddi.h)

La struttura D3DDDICB_SUBMITCOMMAND viene usata per inviare 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;

Membri

Commands

Indirizzo virtuale GPU ai comandi inviati al contesto per l'esecuzione. Queste informazioni vengono fornite al driver in modalità kernel durante l'invio del comando e vengono usate anche a scopo 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 del comando e vengono usate anche a scopo di debug.

Flags

Istanza della struttura 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. Queste dimensioni devono essere inferiori alle dimensioni richieste dal driver in modalità kernel per l'invio di dati del driver privato.

NumPrimaries

Specifica il numero di primarie e buffer back swapchain in cui vengono scritti i comandi inviati. È uguale al numero di allocazioni nella matrice WrittenPrimaries.

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

Matrici di handle per le primarie e i buffer back di swapchain in cui vengono scritti i comandi inviati.

MarkerLogType

Enumerazione D3DDDI_MARKERLOGTYPE che indica il tipo di marcatore nel log ETW (Event Tracing for Windows) supportato dal driver di visualizzazione in modalità utente.

RenderCBSequence

Identificatore univoco per ogni pfnRenderCb chiamata di funzione. Inizia con un valore pari a 1 per i contesti associati a DDI in modalità utente a thread singolo e 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 incrementare il valore per ogni pfnRenderCb chiamata eseguita su 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 API del contesto.

pCompletedAPISequenceNumberLow1

Puntatore usato dal driver per passare il numero di sequenza API del contesto.

pBegunAPISequenceNumberLow0

Puntatore usato dal driver per passare il numero di sequenza API del contesto.

pBegunAPISequenceNumberLow1

Puntatore usato dal driver per passare il numero di sequenza API del contesto.

pBatchedMarkerData

Puntatore usato dal driver per passare i dati del marcatore in 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

Osservazioni

Il pfnSubmitCommandCb percorso del codice non fornisce più un elenco di allocazioni per il driver in modalità utente per fornire un elenco di allocazioni che verranno lette e scritte in durante questo comando. Tuttavia, è necessario sincronizzare alcune scritture che normalmente non sarebbero note senza l'elenco di allocazioni. A tale scopo, un nuovo elenco di allocazioni di piccole dimensioni specifico per le superfici che verranno scritte in e usate per la visualizzazione del contenuto. La matrice WrittenPrimaries deve essere usata per fornire tali allocazioni.

Nonostante il nome, WritePrimaries deve contenere allocazioni considerate SwapChainBackBuffer allocazioni in base al runtime oltre alle primarie. Viene esposto 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 porta di scambio FlipEx o primario. Il driver può usare questo flag per determinare tutte le allocazioni da inserire nell'elenco WrittenPrimaries 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 pfnSubmitCommandCb chiamata che scrive nella superficie.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
server minimo supportato Windows Server 2016
intestazione d3dumddi.h (include D3dumddi.h)

Vedere anche

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb