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