Original-URL des Artikels: https://www.golem.de/news/linux-kernel-effizienter-rendern-mit-getrenntem-drm-und-kms-1310-102369.html    Veröffentlicht: 25.10.2013 15:46    Kurz-URL: https://glm.io/102369

Linux-Kernel

Effizienter rendern mit getrenntem DRM und KMS

Im nächsten Linux-Kernel werden die Grafikfunktionen Direct Rendering Manager (DRM) und Kernel Mode Settings (KMS) getrennt. Über mehrere Render-Nodes sollen Anwendungen - auch mehrere - GPUs effizienter nutzen können. Dabei mussten aber auch Sicherheitsaspekte berücksichtigt werden.

Aus Benutzersicht seien die Render-Nodes wie eine große FPU, zitiert Kernel-Entwickler David Herrmann den Entwickler Greg Kroah-Hartman. Herrmann ist für den Kernel-Patch verantwortlich, mit dem künftig Anwendungen über mehr als einen Knotenpunkt im Linux-Kernel auf Grafikeinheiten zugreifen können. Bislang haben Sicherheitsaspekte beim Zugriff auf den Speicher (Mmap) die Integration des Patches verhindert. Diese seien aber inzwischen ausgeräumt worden, so dass der Patch vor wenigen Tagen von Linus Torvalds akzeptiert wurde und somit in Linux 3.12 verwendet werden kann.

Die Bereitstellung mehrerer Render-Knoten bringt aber noch weitere Änderungen mit sich. Zum einen werden die KMS nicht mehr über diese Nodes verarbeitet, sondern sollen ebenfalls über eigene Knotenpunkte auf die Displaycontroller der Grafikkarten zugreifen können. Bisher darf lediglich eine Anwendung, etwa der Displayserver, KMS vornehmen, und das nur mit Root-Rechten. Nach dem Umbau sollen beispielsweise Xserver auch mit einfachen Benutzerrechten laufen können und trotzdem die Bildschirmauflösung auf dem Grafikchip ändern dürfen. Zudem sollen dann auch zwei Xserver parallel laufen können, die jeweils einen eigenen Monitor mit eigener Auflösung ansteuern können.

Kaum API-Änderungen

Auch die neuen Render-Knoten werden wie normale Dateisystem-Nodes mit entsprechend variablen Benutzerrechten angesprochen. Daher können selbst einzelne Anwendungen das Rendering verwalten und müssen nicht wie bisher zunächst den Umweg über den Xserver machen. Dabei fallen die Mode-Settings-Ioctls weg, die künftig über getrennte Nodes verwendet werden. Statt dem unsicheren Gem-Flink des Graphics Execution Manager darf künftig nur noch Dma-buf für Speicherzugriffe verwendet werden.

An dem API ändert sich für Entwickler kaum etwas. Modeset und Render erhalten lediglich Subsets, über die dann die einzelnen Nodes angesteuert werden können. Entwickler haben die Möglichkeit, selbst eine Render-Node zu spezifizieren oder können die Auswahl dem grafischen Server überlassen, egal ob es sich dabei um X11 oder Wayland handelt. Seitens des Kernels gibt es künftig mehrere DRM-Master-Objekte. Änderungen an Treibern werden jedoch nicht benötigt.

Die Aufteilung vom Rendering im DRM und KMS soll vor allem den Grafikeinheiten auf der ARM-Plattform zugutekommen. Denn auf den meisten aktuellen Grafikkarten von AMD, Intel oder Nvidia sind GPU und der Displaycontroller auf derselben Karte.  (jt)


Verwandte Artikel:
Grafikschnittstelle: Vulkan 1.1 unterstützt DRM und Multi-GPU   
(08.03.2018, https://glm.io/133208 )
KMS: Tele Columbus zahlt 52 Millionen für Vodafone-Kabelnetz-Teil   
(29.10.2017, https://glm.io/130870 )
Treiber: Samsung veröffentlicht Quellcode von ARM-DRM-Treiber   
(31.08.2011, https://glm.io/86099 )
Google: Chromebooks bekommen "Linux-VMs" und "Terminal"   
(27.02.2018, https://glm.io/133030 )
Bpfilter: Linux-Kernel könnte weitere Firewall-Technik bekommen   
(22.02.2018, https://glm.io/132933 )

© 1997–2019 Golem.de, https://www.golem.de/