Condividi tramite


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)

Vedi anche

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb