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) |