D3DDDICB_SUBMITCOMMAND-Struktur (d3dumddi.h)

Die D3DDDICB_SUBMITCOMMAND-Struktur wird verwendet, um Befehlspuffer für Kontexte zu übermitteln, die die virtuelle Gpu-Adressierung (Graphics Processing Unit) unterstützen.

Syntax

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;

Member

Commands

Virtuelle GPU-Adresse an die Befehle, die zur Ausführung an den Kontext übermittelt werden. Diese Informationen werden dem Kernelmodustreiber während der Befehlsübermittlung bereitgestellt und auch zum Debuggen verwendet.

CommandLength

Gibt die Länge der Befehle an, die an die GPU übermittelt werden, in Bytes. Diese Informationen werden dem Kernelmodustreiber während der Befehlsübermittlung bereitgestellt und auch zum Debuggen verwendet.

Flags

Eine instance der D3DDDICB_SUBMITCOMMANDFLAGS-Struktur.

BroadcastContextCount

Gibt die Anzahl des Kontexts an, an den dieser Befehl übermittelt werden soll. Diese Anzahl muss mindestens 1 sein.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Gibt das Handle des Kontexts an, um die angegebenen Befehle auszuführen.

pPrivateDriverData

Zeiger auf private Treiberdaten, die im Rahmen dieser Übermittlung an den Kernelmodustreiber übergeben werden sollen.

PrivateDriverDataSize

Größe der übergebenen privaten Treiberdaten. Diese Größe muss kleiner als die Größe sein, die vom Kernelmodustreiber für die Übermittlung privater Treiberdaten angefordert wird.

NumPrimaries

Gibt die Anzahl von Primär- und Swapchainbackpuffern an, in die von den übermittelten Befehlen geschrieben wird. Dies entspricht der Anzahl der Zuordnungen im WrittenPrimaries-Array .

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

Arrays von Handles für die Primär- und Swapchainbackpuffer, in die von den übermittelten Befehlen geschrieben wird.

MarkerLogType

Eine D3DDDI_MARKERLOGTYPE-Enumeration , die den Typ des Markers im ETW-Protokoll (Ereignisablaufverfolgung für Windows) angibt, den der Benutzermodusanzeigetreiber unterstützt.

RenderCBSequence

Ein eindeutiger Bezeichner für jeden pfnRenderCb-Funktionsaufruf . Beginnt bei einem Wert von 1 für Kontexte, die Singlethread-Benutzermodus-DDIs zugeordnet sind, und reicht bis zum Wert 0x80000001 für Kontexte, die DDIs im Freethread-Benutzermodus zugeordnet sind. Der Anzeigetreiber für den Benutzermodus muss den Wert für jeden pfnRenderCb-Aufruf erhöhen, den er in einer beliebigen Engine vornimmt.

FirstAPISequenceNumberHigh

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

CompletedAPISequenceNumberLow0Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

CompletedAPISequenceNumberLow1Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

BegunAPISequenceNumberLow0Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

BegunAPISequenceNumberLow1Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

BatchedMarkerDataCount

Wird vom Treiber verwendet, um die Anzahl der Batchmarkerdaten des Kontexts zu übergeben.

pCompletedAPISequenceNumberLow0

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pCompletedAPISequenceNumberLow1

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pBegunAPISequenceNumberLow0

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pBegunAPISequenceNumberLow1

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pBatchedMarkerData

Ein Zeiger, der vom Treiber verwendet wird, um die Batchmarkerdaten des Kontexts zu übergeben.

Reserved

Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden.

NumHistoryBuffers

Die Anzahl der Verlaufspuffer.

HistoryBufferArray

Ein Zeiger auf das Array von Verlaufspuffern.

hSyncToken

pReserved

Hinweise

Der PfnSubmitCommandCb-Codepfad stellt keine Zuordnungsliste für den Benutzermodustreiber mehr bereit, um eine Liste der Zuordnungen bereitzustellen, die während dieses Befehls gelesen und geschrieben werden. Es ist jedoch erforderlich, einige Schreibvorgänge zu synchronisieren, die ohne die Zuordnungsliste normalerweise nicht bekannt wären. Dazu eine neue kleine Zuordnungsliste speziell für Oberflächen, die geschrieben und zum Anzeigen von Inhalten verwendet werden. Das WrittenPrimaries-Array sollte verwendet werden, um solche Zuordnungen bereitzustellen.

Trotz des Namens müssen WrittenPrimaries zusätzlich zu den Primaren Zuordnungen enthalten, die gemäß der Laufzeit als SwapChainBackBuffer-Zuordnungen gelten. Dies wird dem Benutzermodustreiber durch ein neues Flag in D3D10_DDI_RESOURCE_MISC_FLAG verfügbar gemacht. Die Runtime stellt das D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE-Flag für den Benutzermodustreiber bei Aufrufen zum Erstellen einer Ressource oder eines Heaps bereit, die als FlipEx-Swapchain oder primär erstellt wird. Der Treiber kann dieses Flag verwenden, um alle Zuordnungen zu bestimmen, die in die Liste WrittenPrimaries für Microsoft Direct3D 11 eingefügt werden sollen. Andere Laufzeiten haben sich nicht geändert.

Wenn der Treiber einen Aufruf von CreateResource mit diesem Flag empfängt, sollte die Zuordnung dieser Liste bei jedem pfnSubmitCommandCb-Aufruf hinzugefügt werden, der in die Oberfläche schreibt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Kopfzeile d3dumddi.h (include D3dumddi.h)

Weitere Informationen

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb