Freigeben über


ID3D11DeviceContext2::ResizeTilePool-Methode (d3d11_2.h)

Ändert die Größe eines Kachelpools.

Syntax

HRESULT ResizeTilePool(
  [in] ID3D11Buffer *pTilePool,
  [in] UINT64       NewSizeInBytes
);

Parameter

[in] pTilePool

Typ: ID3D11Buffer*

Ein Zeiger auf einen ID3D11Buffer , damit die Größe des Kachelpools geändert werden kann.

[in] NewSizeInBytes

Typ: UINT64

Die neue Größe des Kachelpools in Bytes. Die Größe muss ein Vielfaches von 64 KB oder 0 sein.

Rückgabewert

Typ: HRESULT

Gibt bei erfolgreicher Ausführung S_OK zurück. Gibt andernfalls eine der folgenden Rückgaben zurück:

  • Gibt E_INVALIDARG zurück, wenn die neue Kachelpoolgröße kein Vielfaches von 64 KB oder 0 ist.
  • Gibt E_OUTOFMEMORY zurück, wenn der Aufruf dazu führt, dass der Treiber Speicherplatz für neue Seitentabellenzuordnungen zuweisen muss, aber der Arbeitsspeicher knapp wird.
  • Gibt DXGI_ERROR_DEVICE_REMOVED zurück, wenn das Video Karte physisch aus dem System entfernt wurde oder ein Treiberupgrade für das Video Karte durchgeführt wurde.
Für E_INVALIDARG oder E_OUTOFMEMORY bleibt der vorhandene Kachelpool unverändert, einschließlich vorhandener Zuordnungen.

Hinweise

ResizeTilePool erhöht oder verringert die Größe des Kachelpools, je nachdem, ob die App mehr oder weniger Arbeitssätze für die gekachelten Ressourcen benötigt, die ihr zugeordnet sind. Eine App kann zusätzliche Kachelpools für neue gekachelte Ressourcen zuordnen. Wenn jedoch eine einzelne kachelte Ressource mehr Platz benötigt als ursprünglich in ihrem Kachelpool verfügbar ist, kann die App die Größe des Kachelpools der Ressource erhöhen. Eine gekachelte Ressource kann keine Zuordnungen zu mehreren Kachelpools gleichzeitig aufweisen.

Wenn Sie die Größe eines Kachelpools erhöhen, werden zusätzliche Kacheln am Ende des Kachelpools über eine oder mehrere neue Zuordnungen vom Treiber hinzugefügt. Ihre App kann die Aufschlüsselung in die neuen Zuordnungen nicht erkennen. Der vorhandene Arbeitsspeicher im Kachelpool bleibt unverändert, und vorhandene gekachelte Ressourcenzuordnungen in diesem Speicher bleiben intakt.

Wenn Sie die Größe eines Kachelpools verringern, werden Kacheln vom Ende entfernt (dies ist auch unterhalb der anfänglichen Zuordnungsgröße zulässig, bis zu 0). Dies bedeutet, dass neue Zuordnungen nicht über die neue Größe zurück vorgenommen werden können. Vorhandene Zuordnungen über das Ende der neuen Größe hinaus bleiben jedoch intakt und verwendbar. Der Arbeitsspeicher bleibt aktiv, solange Zuordnungen zu einem beliebigen Teil der Zuordnungen, die für den Speicher des Kachelpools verwendet werden, verbleiben. Wenn nach der Verringerung ein Teil des Arbeitsspeichers aktiv gehalten wurde, weil Kachelzuordnungen darauf verweisen und der Kachelpool erneut erhöht wird (um einen beliebigen Betrag), wird der vorhandene Arbeitsspeicher zuerst wiederverwendet, bevor zusätzliche Zuordnungen auftreten, um die Größe der Erhöhung zu verarbeiten.

Um Arbeitsspeicher zu sparen, muss eine App nicht nur einen Kachelpool verkleinern, sondern auch vorhandene Zuordnungen über das Ende der neuen kleineren Kachelpoolgröße hinaus entfernen und neu zuordnen.

Das Verringern (und Entfernen von Zuordnungen) führt nicht unbedingt zu sofortigen Speichereinsparungen. Die Freigabe von Arbeitsspeicher hängt davon ab, wie präzise die dem Treiber zugrunde liegenden Zuordnungen für den Kachelpool sind. Wenn eine Verringerung der Größe eines Kachelpools ausreicht, um eine Treiberzuordnung ungenutzt zu machen, kann der Treiber die Zuordnung freigeben. Wenn ein Kachelpool vergrößert wurde und Sie dann auf frühere Größen reduzieren (und Kachelzuordnungen entsprechend entfernen und neu zuordnen), werden Sie höchstwahrscheinlich Speichereinsparungen erzielen. Dieses Szenario ist jedoch nicht garantiert, wenn die Größen nicht genau mit den vom Treiber gewählten zugrunde liegenden Zuordnungsgrößen übereinstimmen.

Weitere Informationen zu gekachelten Ressourcen finden Sie unter Gekachelte Ressourcen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d3d11_2.h
Bibliothek D3D11.lib

Weitere Informationen

ID3D11DeviceContext2