Freigeben über


Verarbeiten von Residenzbudgets

In Windows Display Driver Model (WDDM) v2 werden Prozessen Budgets für die Menge an Arbeitsspeicher zugewiesen, die sie resident behalten können. Dieses Budget kann sich im Laufe der Zeit ändern, wird aber in der Regel nur auferlegt, wenn das System unter Arbeitsspeicherauslastung steht. Vor Microsoft Direct3D 12 wird das Budget vom Benutzermodustreiber in Form von Trim-Benachrichtigungen und MakeResident-Fehlern mit STATUS_NO_MEMORY behandelt. TrimToBudget-Benachrichtigungs -, Evict- und fehlgeschlagene MakeResident-Aufrufe geben alle das neueste Budget in Form eines ganzzahligen NumBytesToTrim-Werts zurück, der angibt, wie viel gekürzt werden muss, um in das neue Budget zu passen.

Bei Direct3D 12-Anwendungen wird das Budget vollständig von der Anwendung verarbeitet. Die Größe des Budgets ist ein Hinweis darauf, dass die Anwendung weiß, worauf sie sich selbst dimensionieren muss. Indem die Budgetgröße als Hinweis verwendet wird, kann die Anwendung entscheiden, wie viele Ressourcen resident beibehalten werden sollen, welche Auflösung und Qualität der Ressourcen beibehalten werden soll.

Um diese Budgets ordnungsgemäß zu verwalten, muss der Kernel wissen, welcher Arbeitsspeicher am Budget beteiligt sein soll. Es gibt ein neues ApplicationTarget-Bit in DXGK_SEGMENTFLAGS2 Struktur, das für Segmente festgelegt werden muss, die der Kernelmodustreiber in die Budgetierungslogik einbeziehen möchte. Beispielsweise würde der Treiber bei einer separaten Grafikverarbeitungseinheit (GPU) mit 1 Segment von VRAM, das für die Anwendungsnutzung geeignet ist, und 1 VRAM-Segment, das automatisch für spezielle Ressourcen verwendet wird, wahrscheinlich nur das primäre VRAM-Segment als ApplicationTarget markieren. Bei integrierten GPUs ist das Standard Blendensegment in der Regel das markierte Segment. Es gibt keine Beschränkung für die Anzahl der Segmente, die als ApplicationTarget markiert werden können. Der Kernel aggregiert diese zusammen und stellt die Anwendung mit einer einheitlichen Größe dar.