IDirect3DDevice9Ex::CheckResourceResidency-Methode (d3d9.h)

Überprüft ein Array von Ressourcen, um festzustellen, ob es wahrscheinlich ist, dass sie zur Draw-Zeit zu einem großen Stillstand führen, da das System die Gpu-Zugriff auf die Ressourcen ermöglichen muss.

Syntax

HRESULT CheckResourceResidency(
  [in] IDirect3DResource9 **pResourceArray,
  [in] UINT32             NumResources
);

Parameter

[in] pResourceArray

Typ: IDirect3DResource9**

Ein Array von IDirect3DResource9-Zeigern , die die zu überprüfenden Ressourcen angeben.

[in] NumResources

Typ: UINT32

Ein -Wert, der die Anzahl von Ressourcen angibt, die an den pResourceArray-Parameter übergeben werden, bis zu einem Maximum von 65535.

Rückgabewert

Typ: HRESULT

Wenn sich alle Ressourcen im gpu-zugänglichen Speicher befinden, gibt die Methode S_OK zurück. Das System muss möglicherweise einen Neuzuordnungsvorgang ausführen, um die Ressourcen heraufzustufen, muss aber keine Daten kopieren.

Wenn sich keine Zuordnung, die die Ressourcen umfasst, auf dem Datenträger befindet, sich aber mindestens eine Zuordnung nicht im SPEICHER befindet, auf den GPU zugegriffen werden kann, gibt die Methode S_RESIDENT_IN_SHARED_MEMORY zurück. Das System muss möglicherweise eine Kopie durchführen, um die Ressource höher zu stufen.

Wenn sich mindestens eine Zuordnung, die die Ressourcen umfasst, auf dem Datenträger befindet, gibt diese Methode S_NOT_RESIDENT zurück. Das System muss möglicherweise eine Kopie durchführen, um die Ressource höher zu stufen.

Hinweise

Diese API ist nicht mehr als eine vernünftige Schätzung für die Residenz, da Ressourcen möglicherweise herabgestuft wurden, wenn die Anwendung sie verwendet.

Das erwartete Verwendungsmuster sieht wie folgt aus. Wenn die Anwendung feststellt, dass eine Gruppe von Ressourcen nicht resident ist, ersetzt die Anwendung eine niedrigere LOD-Version der Ressource und setzt das Rendern fort. Die Videospeicher-Manager-API bietet ein Feature, mit dem die Anwendung ausdrücken kann, dass diese Ressourcen mit niedrigeren LOD-Ressourcen wahrscheinlicher im GPU-zugänglichen Arbeitsspeicher bleiben. Es liegt in der Verantwortung der App, diese niedrigeren LOD-Versionen zu erstellen, auszufüllen und zu zerstören, wenn dies der Fall ist.

Die Anwendung muss auch mit der Heraufstufung der höheren LOD-Versionen beginnen, wenn die Residenzüberprüfung darauf hinweist, dass die Ressource nicht im ARBEITSSPEICHER mit GPU-Zugriff vorhanden ist. Da im Kernelmodus eine Prozesssperre vorhanden ist, erzeugt eine performante Implementierung einen separaten Prozess, dessen einzige Aufgabe das Höherstufen von Ressourcen ist. Die Anwendung kommuniziert die Ressourcenidentität zwischen den beiden Prozessen über die API zum Freigeben freigegebener Ressourcen und fördert sie mithilfe von SetPriority.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d9.h
Bibliothek D3D9.lib

Weitere Informationen

IDirect3DDevice9Ex