IDMLDevice::CreateOperatorInitializer-Methode (directml.h)

Erstellt ein -Objekt, das zum Initialisieren kompilierter Operatoren verwendet werden kann.

Nach der Kompilierung muss ein Operator genau einmal auf der GPU initialisiert werden, bevor er ausgeführt werden kann. Der Operatorinitialisierer enthält den Zustand, der für die Initialisierung eines oder mehrerer kompilierter Zieloperatoren erforderlich ist.

Nach der Instanziierung kann die Verteilung des Operatorinitialisierers über IDMLCommandRecorder::RecordDispatch in einer Befehlsliste aufgezeichnet werden. Nach Abschluss der Ausführung auf der GPU wechseln alle kompilierten Operatoren, die Ziele des Initialisierers sind, in den initialisierten Zustand.

Ein Operatorinitialisierer kann wiederverwendet werden, um verschiedene Sätze kompilierter Operatoren zu initialisieren. Weitere Informationen finden Sie unter IDMLOperatorInitializer::Reset .

Ein Operatorinitialisierer kann ohne Zieloperatoren erstellt werden. Die Ausführung eines solchen Initialisierers ist ein No-Op. Das Erstellen eines Operatorinitialisierers ohne Zieloperatoren kann nützlich sein, wenn Sie im Voraus einen Initialisierer erstellen möchten, aber noch nicht wissen, welche Operatoren für die Initialisierung verwendet werden sollen. IDMLOperatorInitializer::Reset kann verwendet werden, um zurückzusetzen, welche Operatoren als Ziel verwendet werden sollen.

Syntax

HRESULT CreateOperatorInitializer(
                 UINT                 operatorCount,
  [in, optional] IDMLCompiledOperator * const *operators,
                 REFIID               riid,
  [out]          void                 **ppv
);

Parameter

operatorCount

Typ: UINT

Dieser Parameter bestimmt die Anzahl der Elemente im Array, die im Operatorenparameter übergeben werden.

[in, optional] operators

Typ: IDMLCompiledOperator*

Ein optionaler Zeiger auf ein konstantes Array von IDMLCompiledOperator-Zeigern , die den Satz von Operatoren enthalten, auf die dieser Initialisierer ausgerichtet ist. Nach der Ausführung des Initialisierers werden die Zieloperatoren initialisiert. Dieses Array kann NULL oder leer sein, was angibt, dass der Initialisierer über keine Zieloperatoren verfügt.

riid

Typ: REFIID

Ein Verweis auf die GUID (Globally Unique Identifier) der Schnittstelle, die in ppv zurückgegeben werden soll. Es wird erwartet, dass dies die GUID von IDMLOperatorInitializer ist.

[out] ppv

Typ: void**

Ein Zeiger auf einen Speicherblock, der einen Zeiger auf den Operatorinitialisierer empfängt. Dies ist die Adresse eines Zeigers auf einen IDMLOperatorInitializer, der den erstellten Operatorinitialisierer darstellt.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile directml.h
Bibliothek DirectML.lib
DLL DirectML.dll

Weitere Informationen

IDMLDevice