Freigeben über


System- und Treiberunterstützung für Balken mit größenveränderlicher Größe

Es ist heute typisch, dass eine diskrete Grafikverarbeitungseinheit (GPU) nur einen kleinen Teil ihres Framepuffers über den PCI-Bus verfügbar macht. Aus Gründen der Kompatibilität mit 32-Bit-Betriebssysteme beanspruchen diskrete GPUs in der Regel eine E/A-Region von 256 MB für ihre Framepuffer, und so konfiguriert die typische Firmware sie.

Auf GPUs, die ein anpassbares Basisadressregister (BAR) unterstützen, verhandelt Windows die Größe der GPU-BAR nach der Firmwareinitialisierung in Windows Display Driver Model (WDDM) v2 und höher neu. Weitere Informationen zum ändernden BAR-Wert finden Sie in der Spezifikation zur Veränderlichen BAR-Funktion in der PCI SIG-Spezifikationsbibliothek.

Eine GPU, die eine veränderliche Bar unterstützt, muss sicherstellen, dass die Anzeige während der Neuprogrammierung des BAR-Werts beibehalten und ein statisches Bild angezeigt werden kann. Die Anzeige sollte während dieses Vorgangs nicht leer und dann wieder angezeigt werden. Es ist wichtig, einen reibungslosen Übergang zwischen dem firmwareanzeigeten Image, dem Startladeprogrammimage und dem ersten Image zu haben, das vom Kernelmodustreiber generiert wird. Beachten Sie, dass während der Neuverhandlung keine PCI-Transaktion für die GPU erfolgt.

Diese Neuverhandlung ist für den Kernelmodustreiber größtenteils unsichtbar. Wenn die Neuverhandlung erfolgreich ist, beobachtet der Kernelmodustreiber, dass die Größe der GPU-LEISTE auf ihre maximale Größe geändert wurde, um den gesamten VRAM der diskreten GPU verfügbar zu machen.

Nach erfolgreicher Größenänderung sollte der Kernelmodustreiber ein einzelnes CPUVisible-Speichersegment für den Videospeicher-Manager verfügbar machen. Der Videospeicher-Manager ordnet diesem Bereich virtuelle CPU-Adressen direkt zu, wenn die CPU auf den Inhalt des Arbeitsspeichersegments zugreifen muss.