Freigeben über


Gefahrennachverfolgung im Vergleich mit den Kachelpoolressourcen

Für nicht gekachelte Ressourcen kann Direct3D bestimmte Gefahrenbedingungen während des Renderings verhindern, aber da die Gefahrennachverfolgung für gekachelte Ressourcen auf Kachelebene erfolgen würde, kann die Nachverfolgung der Gefahrenbedingungen während des Renderings gekachelter Ressourcen zu teuer sein.

Für nicht gekachelte Ressourcen lässt die Runtime beispielsweise nicht zu, dass eine bestimmte SubResource als Eingabe (z. B. shaderResourceView) und als Ausgabe (z. B. RenderTargetView) gleichzeitig gebunden wird. Wenn ein solcher Fall auftritt, hebt die Runtime die Bindung an die Eingabe auf. Dieser Nachverfolgungsaufwand in der Runtime ist günstig und erfolgt auf subResource-Ebene. Einer der Vorteile dieses Nachverfolgungsaufwands besteht darin, die Wahrscheinlichkeit von Anwendungen zu minimieren, die versehentlich von der Ausführungsreihenfolge des Hardware-Shaders abhängen. Die Ausführungsreihenfolge des Hardware-Shaders kann variieren, wenn nicht für eine bestimmte Grafikverarbeitungseinheit (GRAPHICS Processing Unit, GPU), dann sicherlich zwischen verschiedenen GPUs.

Die Nachverfolgung der Bindung von Ressourcen kann für gekachelte Ressourcen zu teuer sein, da die Nachverfolgung auf Kachelebene erfolgt. Neue Probleme treten auf, z. B. das Überprüfen von Wegversuchen zum RenderTargetView-Rendern mit einer Kachel, die mehreren Bereichen auf der Oberfläche gleichzeitig zugeordnet ist. Wenn sich herausstellt, dass diese Risikonachverfolgung pro Kachel für die Laufzeit zu teuer ist, wäre dies im Idealfall zumindest eine Option in der Debugebene.

Eine Anwendung muss den Anzeigetreiber darüber informieren, wenn sie einen Schreib- oder Lesevorgang für eine gekachelte Ressource ausgegeben hat, die auf den Speicher des Kachelpools verweist, auf den auch in bevorstehenden Lese- oder Schreibvorgängen getrennt gekachelte Ressourcen verweisen, auf die der erste Vorgang abgeschlossen werden soll, bevor die folgenden Vorgänge beginnen können. Weitere Informationen zu dieser Bedingung finden Sie unter ID3D11DeviceContext2::TiledResourceBarrier-Hinweise .

Zuordnungen in einen Kachelpool