Direct Rendering Manager
Direct Rendering Manager (DRM) on Linux-ytimen ohjelmointirajapinta, joka on tarkoitettu tukemaan monimutkaisia grafiikkalaitteita, yleensä 3D-grafiikan kiihdytykseen grafiikkasuorittimella (GPU).[1]
Varhainen grafiikkarajapinta Linuxissa oli vastaavanlainen kuin FreeBSD:ssä, joka muuttui kun DRM liitettiin Linuxin ytimeen.[2] X Window Systemiä käyttävät sovellukset voivat käyttää DRM:ää Direct Rendering Infrastructuren (DRI) kautta.[3]
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.[4] Video For Linux 2 (V4L2) -rajapinta oli soveltuva videokuvan kaappaamiseen ja yksinkertaiseen videokuvan esitykseen mutta ei monimutkaisemmille laitteille.[4]
Kernel Mode Setting (KMS) on osa DRM-rajapintaa, jolla näyttötoiminnot kuten näytön kuvatarkkuus ja värisyvyys konfiguroidaan.[4][5] Graphics Execution Manager (GEM) on näyttömuistia hallitseva komponentti.[5] Sulautetuissa järjestelmissä ei ole yleensä lainkaan erillistä näyttömuistia (VRAM), kun taas henkilökohtaisissa tietokoneissa on erillistä muistia NUMA-arkkitehtuurin kaltaisesti.[5][6] GEM korvaa aiemman Translation Table Maps (TTM) muistihallinnan.[6][2]
Wayland-järjestelmä käyttää DRM-rajapintaa sekä KMS-rajapintaa näyttölaitteiden tunnistamiseen.[7] KMSCON on DRM:ää käyttävä toteutus Linuxin virtuaalipäätteille.[8] DRM/KMS grafiikkapino sisältää ytimen ja käyttäjäavaruuden rajapinnan (libdrm/libkms kirjastot).[9]
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.[10]
Katso myös
[muokkaa | muokkaa wikitekstiä]Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Linux GPU Driver Developer’s Guide (PDF) infradead.org. 5.9.2017. Arkistoitu 9.8.2019. Viitattu 27.10.2019. (englanniksi)
- ↑ a b Jake Edge: Graphics drivers and the BSDs 15.10.2014. Lwn.net. Viitattu 27.10.2019. (englanniksi)
- ↑ Wayland Architecture wayland.freedesktop.org. Viitattu 13.2.2017.
- ↑ a b c Boris Brezillon: The DRM/KMS subsystem from a newbie’s point of view (PDF) events.static.linuxfound.org. Viitattu 27.10.2019. (englanniksi)
- ↑ a b c Inki Dae: DRM Driver Development For Embedded Systems (PDF) elinux.org. 26-28.10.2011. Viitattu 27.10.2019. (englanniksi)
- ↑ a b GEM - the Graphics Execution Manager lwn.net. 13.5.2008. Viitattu 27.10.2019. (englanniksi)
- ↑ Michael Tretter: The Modern Linux Graphics Stack on Embedded Systems (PDF) elinux.org. Viitattu 27.10.2019. (englanniksi)
- ↑ KMSCON Introduction dvdhrm.wordpress.com. Viitattu 30.10.2019. (englanniksi)
- ↑ DRM KMS overview wiki.st.com. Viitattu 27.10.2019. (englanniksi)
- ↑ Gustavo Padovan: A dream come true: Android is finally using DRM/KMS 17.12.2018. Collabora. Viitattu 27.10.2019. (englanniksi)
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- kernel.org: Linux GPU Driver Developer's Guide (englanniksi)
- mupuf.org: A deeper look into GPUs and the Linux Graphics Stack (PDF) (englanniksi)