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]