Linuxin grafiikkapino (vuonna 2013).
DRM-arkkitehtuuri (sisältäen KMS- ja GEM-komponentit).
**Direct Rendering Manager** (DRM) on Linux-ytimen ohjelmointirajapinta, joka on tarkoitettu tukemaan monimutkaisia grafiikkalaitteita, yleensä 3D-grafiikan kiihdytykseen grafiikkasuorittimella (GPU).

Varhainen grafiikkarajapinta Linuxissa oli vastaavanlainen kuin FreeBSD:ssä, joka muuttui kun DRM liitettiin Linuxin ytimeen. X Window Systemiä käyttävät sovellukset voivat käyttää DRM:ää Direct Rendering Infrastructuren (DRI) kautta.

Aiemmin ytimessä oli FBDEV kuvapuskurirajapinta, joka vain välitti kuvia näytönohjaimelle, mutta monimutkaisemmat grafiikkasuorittimet tarvitsivat lisätukea.
FBDEV ei tukenut useita tarvittuja ominaisuuksia, kuten päällyskerrokset (*overlay*) ja laitteistokursorit. Video For Linux 2 (V4L2) -rajapinta oli soveltuva videokuvan kaappaamiseen ja yksinkertaiseen videokuvan esitykseen mutta ei monimutkaisemmille laitteille.

Kernel Mode Setting (KMS) on osa DRM-rajapintaa, jolla näyttötoiminnot kuten näytön kuvatarkkuus ja värisyvyys konfiguroidaan. Graphics Execution Manager (GEM) on näyttömuistia hallitseva komponentti. Sulautetuissa järjestelmissä ei ole yleensä lainkaan erillistä näyttömuistia (VRAM), kun taas henkilökohtaisissa tietokoneissa on erillistä muistia NUMA-arkkitehtuurin kaltaisesti. GEM korvaa aiemman Translation Table Maps (TTM) muistihallinnan.

Wayland-järjestelmä käyttää DRM-rajapintaa sekä KMS-rajapintaa näyttölaitteiden tunnistamiseen. KMSCON on DRM:ää käyttävä toteutus Linuxin virtuaalipäätteille.
DRM/KMS grafiikkapino sisältää ytimen ja käyttäjäavaruuden rajapinnan (libdrm/libkms kirjastot).

Androidilla käytetty ydinversio käytti aluksi Atomic Display Framework (ADF) -grafiikkapinoa, joka myöhemmin muokattiin käyttämään DRM:ää johtaen yksinkertaisempaan ajurien kirjoittamiseen.

Grafiikkasuorittimen jakaminen ohjelmien kanssa.GPU:n käyttö ilman DRM:ää: konfliktitilanne.GPU:n käyttö DRM:n kanssa: ei konfliktia.

Katso myös
----------

* Mesa 3D
* Wayland

Lähteet
-------

1. ↑  Linux GPU Driver Developer’s Guide (PDF) *infradead.org*.  5.9.2017.  Arkistoitu 9.8.2019. Viitattu 27.10.2019. (englanniksi)
2. 1 2  Jake Edge: Graphics drivers and the BSDs  15.10.2014. Lwn.net. Viitattu 27.10.2019. (englanniksi)
3. ↑  Wayland Architecture *wayland.freedesktop.org*. Viitattu 13.2.2017.
4. 1 2 3  Boris Brezillon: The DRM/KMS subsystem from a newbie’s point of view (PDF) *events.static.linuxfound.org*. Viitattu 27.10.2019. (englanniksi)
5. 1 2 3  Inki Dae: DRM Driver Development For Embedded Systems (PDF) *elinux.org*.  26-28.10.2011. Viitattu 27.10.2019. (englanniksi)
6. 1 2  GEM - the Graphics Execution Manager *lwn.net*.  13.5.2008. Viitattu 27.10.2019. (englanniksi)
7. ↑  Michael Tretter: The Modern Linux Graphics Stack on Embedded Systems (PDF) *elinux.org*. Viitattu 27.10.2019. (englanniksi)
8. ↑  KMSCON Introduction *dvdhrm.wordpress.com*. Viitattu 30.10.2019. (englanniksi)
9. ↑  DRM KMS overview *wiki.st.com*. Viitattu 27.10.2019. (englanniksi)
10. ↑  Gustavo Padovan: A dream come true: Android is finally using DRM/KMS  17.12.2018. Collabora. Viitattu 27.10.2019. (englanniksi)

Aiheesta muualla
----------------

* kernel.org: Linux GPU Driver Developer's Guide (englanniksi)
* mupuf.org: A deeper look into GPUs and the Linux Graphics Stack (PDF) (englanniksi)