Freigeben über


Ändern der Größe des Kachelpools

Verwenden Sie die ID3D11DeviceContext2::ResizeTilePool-API , um einen Kachelpool zu vergrößern, wenn die Anwendung mehr Arbeitssatz für die Zuordnung der zugeordneten Ressourcen benötigt, oder verkleinern, wenn weniger Speicherplatz benötigt wird. Eine weitere Option für Anwendungen besteht darin, zusätzliche Kachelpools für neue kachelfähige Ressourcen zuzuweisen. Wenn jedoch eine einzelne kachelierte Ressource mehr Platz benötigt, als ursprünglich in ihrem Kachelpool verfügbar ist, ist das Vergrößern des Kachelpools eine gute Option. Eine kachelnde Ressource kann keine Zuordnungen zu mehreren Kachelpools gleichzeitig haben.

Wenn ein Kachelpool vergrößert wird, werden am Ende zusätzliche Kacheln über eine oder mehrere neue Zuordnungen durch den Anzeigetreiber hinzugefügt. Diese Aufschlüsselung in Zuordnungen ist für die Anwendung nicht sichtbar. Der vorhandene Arbeitsspeicher im Kachelpool bleibt unverändert, und vorhandene kachelte Ressourcenzuordnungen zu diesem Speicher bleiben intakt.

Wenn ein Kachelpool verkleinert wird, werden Kacheln vom Ende entfernt. Kacheln werden sogar unterhalb der ursprünglichen Zuordnungsgröße entfernt, bis zu 0. Dies bedeutet, dass neue Zuordnungen nicht über die neue Größe hinaus erstellt werden können. Vorhandene Zuordnungen über das Ende der neuen Größe hinaus bleiben jedoch intakt und können verwendet werden. Der Anzeigetreiber behält den Speicher so lange bei, wie Zuordnungen zu einem Teil der Zuordnungen, die der Treiber für den Kachelpoolspeicher verwendet, erhalten bleiben. Wenn nach der Verkleinerung ein Teil des Arbeitsspeichers am Leben gehalten wurde, weil Kachelzuordnungen darauf verweisen, und der Kachelpool dann erneut (um einen beliebigen Betrag) vergrößert wird, wird der vorhandene Arbeitsspeicher zuerst wiederverwendet, bevor zusätzliche Zuordnungen auftreten, um die Größe des Vergrößerungsvorgangs zu verarbeiten.

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

Das Verkleinern (und Entfernen von Zuordnungen) führt nicht unbedingt zu sofortigen Speichereinsparungen. Die Freigabe von Arbeitsspeicher hängt davon ab, wie präzise die dem Anzeigetreiber zugrunde liegenden Zuordnungen für den Kachelpool sind. Wenn die Verkleinerung ausreicht, um eine ungenutzte Zuordnung des Anzeigetreibers zu verwenden, kann der Anzeigetreiber sie freigeben. Wenn ein Kachelpool vergrößert wurde, führt das Verkleinern auf vorherige Größen (und das Entfernen/Erneutes Entfernen von Kachelzuordnungen entsprechend) höchstwahrscheinlich zu Speichereinsparungen, wenn auch nicht garantiert, wenn die Größen nicht genau mit den vom Anzeigetreiber gewählten zugrunde liegenden Zuordnungsgrößen übereinstimmen.

Zuordnungen in einen Kachelpool