Freigeben über


D3DDDICB_SUBMITCOMMAND Struktur (d3dumddi.h)

Die D3DDDICB_SUBMITCOMMAND Struktur wird verwendet, um Befehlspuffer in Kontexten zu übermitteln, die die virtuelle Adressierung der Grafikverarbeitungseinheit (GPU) 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;

Angehörige

Commands

VIRTUELLE GPU-Adresse an die Befehle, die für die Ausführung an den Kontext übermittelt werden. Diese Informationen werden dem Kernelmodustreiber während der Befehlsübermittlung bereitgestellt und werden auch für Debuggingzwecke verwendet.

CommandLength

Gibt die Länge der an die GPU übermittelten Befehle in Bytes an. Diese Informationen werden dem Kernelmodustreiber während der Befehlsübermittlung bereitgestellt und werden auch für Debuggingzwecke verwendet.

Flags

Eine Instanz 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, mit dem die angegebenen Befehle ausgeführt werden sollen.

pPrivateDriverData

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

PrivateDriverDataSize

Die Größe der datendaten des privaten Treibers, die übergeben werden. 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 der Primar- und Swapchainbackpuffer an, in die die übermittelten Befehle geschrieben werden. Dies entspricht der Anzahl der Zuordnungen im WrittenPrimaries Arrays.

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

Arrays of handle to the primaries and swapchain back buffers being written to the submitted commands.

MarkerLogType

Eine D3DDDI_MARKERLOGTYPE Enumeration, die den Typ der Markierung im Ereignisablaufverfolgungsprotokoll für Windows (ETW) angibt, das der Anzeigetreiber für den Benutzermodus unterstützt.

RenderCBSequence

Ein eindeutiger Bezeichner für jeden pfnRenderCb- Funktionsaufruf. Beginnt bei einem Wert von 1 für Kontexte, die mit DDIs für den Einzelthreadmodus verknüpft sind, und bereiche auf einen Wert von 0x80000001 für Kontexte, die mit Freithreadmodus-DDIs verknüpft sind. Der Anzeigetreiber für den Benutzermodus muss den Wert für jeden pfnRenderCb aufrufen, der für jedes Modul ausgeführt wird.

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 zum Übergeben der API-Sequenznummer des Kontexts verwendet wird.

pCompletedAPISequenceNumberLow1

Ein Zeiger, der vom Treiber zum Übergeben der API-Sequenznummer des Kontexts verwendet wird.

pBegunAPISequenceNumberLow0

Ein Zeiger, der vom Treiber zum Übergeben der API-Sequenznummer des Kontexts verwendet wird.

pBegunAPISequenceNumberLow1

Ein Zeiger, der vom Treiber zum Übergeben der API-Sequenznummer des Kontexts verwendet wird.

pBatchedMarkerData

Ein Zeiger, der vom Treiber zum Übergeben der Batchmarkierungsdaten des Kontexts verwendet wird.

Reserved

Dieses Element ist reserviert und sollte auf Null festgelegt werden.

NumHistoryBuffers

Die Anzahl der Verlaufspuffer.

HistoryBufferArray

Ein Zeiger auf das Array von Verlaufspuffern.

hSyncToken

pReserved

Bemerkungen

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 in diese geschrieben werden. Es ist jedoch erforderlich, einige Schreibvorgänge zu synchronisieren, die normalerweise nicht ohne die Zuordnungsliste bekannt wären. Hierfür wird eine neue kleine Zuordnungsliste speziell für Oberflächen verwendet, die für die Anzeige von Inhalten geschrieben und verwendet werden. Die WrittenPrimaries Arrays sollten verwendet werden, um solche Zuordnungen bereitzustellen.

Trotz des Namens müssen WrittenPrimaries Zuordnungen enthalten, die SwapChainBackBuffer Zuordnungen gemäß der Laufzeit zusätzlich zu den Primaren berücksichtigt werden. Dies wird dem Benutzermodustreiber durch eine neue Kennzeichnung in D3D10_DDI_RESOURCE_MISC_FLAGverfügbar gemacht. Die Laufzeit stellt die D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE Kennzeichnung für den Benutzermodustreiber während Aufrufen bereit, um eine Ressource oder einen Heap zu erstellen, die als FlipEx-Swapchain- oder primärenerstellt wird. Der Treiber kann dieses Kennzeichen verwenden, um alle Zuordnungen zu bestimmen, die in der liste WrittenPrimaries für Microsoft Direct3D 11 abgelegt werden sollen. Andere Laufzeiten wurden nicht geändert.

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10
mindestens unterstützte Server- Windows Server 2016
Header- d3dumddi.h (include D3dumddi.h)

Siehe auch

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb