
direct rendering maanejar

aadhunika viidiyoo kaardukalude jpyuvumaayi interface cheiyunnathinu utharavaadiyaaya linux kernalinte oru subsistamaanu direct rendering maanejar (dii. aarr. emm). jipiyuvilekk kamaandukalum daattayum ayaykkaanum displayude mooad krameekaranam krameekarikkuka polulla pravartthanangal nadatthaanum user-space prograamukalkku upayogikkaavunna oru apiye drm thurannukaattunnu. ex server direct rendering infrastructurinte kernel-space gadakamaayaanu drm aadyam vikasippicheduthath, ennaal athinusesham ithu mattu graphik staakk badalukalaaya wayland, staandalon aaplikkeshanukal, sdl 2, cody thudangiya librarikal enniva upayogikkunnu.
hardware-accelerated 3D rendering, viidiyoo decoding, gpgpu computing enniva cheyyaan jipiyuvin aajnaapikkaan user-space prograamukalkku drm api upayogikkaam.
avalokanam.
linux kernelil ithinakam thanne oru graphics adapterinte framebuffer kaikaaryam cheyyaan upayogikkunna efbidev enna api undaayirunnu, pakshe aadhunika 3dii-accelerated gpu adisthaanamaakkiyulla viidiyoo hardwareinte aavasyangal kaikaaryam cheyyaan ithu upayogikkaan kazhinjilla. eee upakaranagalkk saadhaaranayaayi jipiyuvilekk commandukal ayaykkunnathinu avarude swantham memmariyil oru command kyoo krameekarikkukayum kaikaaryam cheyyukayum cheyyendathundu, koodaathe aaa memmariyile bafarukaludeyum swatantra sthalathinteyum maanejmentum aavasyamaanu. thudakkathil, user-space prograamukal (ex server polullava) eee vibhavangal nerittu kaikaaryam cheythirunnuvenkilum avaa saadhaaranayaayi avaa axus ullavar maathramaanenna mattil pravarthichu. rando athiladhikamo prograamukal ore samayam ore hardware niyantrikkaanum oronninum athintethaaya reethiyil vibhavangal sajjeekarikkanum shramikkumbol, mikkappozhum avaa vinaashakaramaayi avasaanichu.
viidiyoo hardware vibhavangal sahakaranathode upayogikkaan onniladhikam prograamukale anuvadikkunnathinaanu direct rendering maanejar srishtichathu. jipiyuvilekk prathyeka axus labhikkuna drm command kyoo, memory, mattethenkilum hardware resource enniva aarambikkunnathinum paripalikkunnathinum utharavaadiyaanu. gpu upayogikkaan aagrahikkunna prograamukal oru madhyasthanaayi pravartthikkunnathum saadhyamaaya samgharshangal ozhivakkaan sradhikkunnathumaaya drminu abhyarthanakal ayaykkunnu.
framebuffer managing, mooad krameekaranam, memory pankidal vasthukkal, memory synchronisation thudangiya user-space prograamukal munbu kaikaaryam cheythirunna kooduthal pravartthanangal ulkkollunnathinayi varshangalayi drm-nte vyaapthi vipuleekarichittund. eee vipuleekaranangalil chilathinu graphics execution maanejar (jemm) allengil kernel mooad-setting (kilometer) polulla prathyeka perukal nalki, avaa nalkunna pravarthanakshamatha prathyekamaayi soochippikkumbol padavali nilanilkkunnu. ennaal avaa sarikkum muzhuvan kernel dii. aarr. emm. subsistathinteyum bhagamaanu.
oru computeril rund jipukal ulppeduthaanulla pravanatha-oru vyathiriktha gp oru samyojithavum-gpu switching polulla puthiya prashnangalilekku nayichu, athu drm leyaril pariharikkendathundu. envidia opttimas saankethikavidyayumaayi poruthappedunnathinu, prime ennu vilikkunna gpu offloading kazhivukal drminu nalki.
software architecture.
direct rendering maanejar kernel speysilaanu thaamasikkunnath, athinaal user-space prograamukal athinte sevanangal abhyarthikkaan kernel sisttam kolukal upayogikkanam. ennirunnaalum, dii. aarr. emm athintethaaya ishtaanusrithamaakkiya sisttam kolukal nirvachikkunnilla. pakaram, ithu kokwos _ 1 shreniyil upakarana fayalukal upayogichu phayal sisttam neyim speysiloode jipasine thurannukattunnathinaayi "ellaam oru phayal aanu" enna unix thathwam pinthudarunnu. dii. aarr. emm kandethiya oro gpuvineyum "dii. aarr. emm upakaranam" ennu vilikkukayum athumaayi interface cheiyunnathinu oru upakarana phayal kokvi _ 2 ("x" oru thudar samkhyayaayirikkunna) srishtikkukayum cheiyunnu. jpyuvumaayi samsarikkaan aagrahikkunna user-space prograamukal eee phayal thurakkukayum drmumayi ashayavinimayam nadatthaan ioactal kolukal upayogikkukayum venam. vyathyastha ioctalukal dii. aarr. emm. eiii. piyude vyathyastha pravarthanangalumaayi poruthappedunnu.
drm subsistavumaayi user-space prograamukalude interface sugamamakkunnathinaayi "libdram" enna oru library srishtichu. eee library oru rapper maathramaan, athu dii. aarr. emm. epiaiyude oro ioctalinum sii yill ezhuthiya oru function athupole sthirathakal, gadanakal, mattu sahaaya gadakangal enniva nalkunnu. libdrm-nte upayogam kernel interface aaplikkeshanukalilekku nerittu thurannukaattunnath ozhivaakkuka mathramalla, prograamukalkkidayil coode veendum upayogikkunnathinum pankidunnathinumulla saadhaarana gunangal avatharippikkukayum cheiyunnu.
dii. aarr. emm.-ll rund bhaagangalunda oru pothuvaaya "dii. aarr. emm coor", oro tharatthilulla pinthunaykkunna hardwarein oru prathyeka bhagam ("dii. aarr. emm driver"). vividha dii. aarr. emm drivermark rajisttar cheyyaan kazhiyunna adisthaana chattakkood dii. aarr. emm coor nalkunnu, koodaathe upayokthru sthalathinu pothuvayathum hardware-swathanthravumaaya pravarthanakshamathayulla oru cheria koottam ioctalukalum nalkunnu. maruvashathu, oru dii. aarr. emm driver, epiaiyude hardware-ashrita bhagam nadappilaakkunnu, athu pinthunaykkunna jipiyuvinte tharatthinu prathyekamaayi; ithu dii. aarr. emm coor ulkkollaatha bakkiyulla ayoktalukalude nadappaakkal nalkanam, pakshe athu api vipuleekarikkukayum atharam hardwareil maathram labhyamaya adhika pravarthanakshamathayulla adhika ioctalukal vaagdaanam cheyyukayum cheyyum. oru nirddishta dii. aarr. emm driver mechappeduthiya api nalkumbol, upayokthru-space libdram oru adhika library libdram-"driver" vazhi vipuleekarikkunnu, athu adhika ayoktalukalumaayi interface cheyyaan upayokthru idam upayogikkaam.
epi.
saadhaaranayaayi anubandha kokwos _ 3 rapper functionukaliloode upayogikkaan uddeshichulla niravadhi interfaceukal upayokthru-space aaplikkeshanukalilekku drm coor kayattumathi cheiyunnu. koodaathe, drivermar ioektilukaliloodeyum csfs fayalukaliloodeyum user-space drivermaarudeyum upakarana avabodhamulla aaplikkeshanukaludeyum upayogathinaayi upakarana-nirddishta interfaceukal kayattumathi cheiyunnu. baahya interfaceukalil iva ulppedunnu memory mapping, kondakst maanejment, dii. emm. eiii ooppareshans, eiii. jii. pii maanejment, wiblank kantrol, fence maanejment, memory maanejment, outtputtu maanejment.
doow. emm.-maastarum doow. emm.-rachayithaavum.
suraksha aavasyangalkko kankaransi prashnangalko oro upakaranathinum orotta user-space prosess upayogikkunnathinu niyanthrikkenda niravadhi pravartthanangal (ioactal) dii. aarr. emm. eiii. pii. aii. yill undu. eee niyanthranam nadappilaakkunnathinu, saadhaaranayaayi "dii. aarr. emm-maasttar" ennu vilikkappedunna oru dii. aarr. emm upakaranathinte "maasttar" aayi kanakkaakkappedunna prakriyayiloode maathram atharam ioctalukal prayogikkaan dii. aarr. emm parimithappedutthunnu. upakarana nooad kakwo _ 2 thuranna ellah prakriyakalilum onninu maathrame athinte phayal handle maasttar ennu adayaalappeduthukayulloo, prathyekichu aadyathe ioactal. eee niyantritha ayoktalukalilonnu dii. aarr. emm-maasttar aakathe upayogikkaan sramichaal oru pishak varum. oru prakriyaykku athinte pradhana punk upekshikkanum-mattoru prakriya athu nedaan anuvadikkaanum-ayokttal ennu vilikkam.
saadhaaranayaayi, athu kaikaaryam cheiyunna oro dii. aarr. emm upakaranathilum, saadhaaranayaayi athinte staarttap samayat anubandha upakarana nooad thurakkumbol, dii. aarr. emm-maasttar padavi nedukayum eee aanukoolyangal muzhuvan graaphikkal sessionilum nilanirthukayum cheiyunna prakriyayaan ex server-allengil mattethenkilum display server.
sheshikkunna upayokthru-space prakriyakalkku "drm-oothu" ennu vilikkunna drm upakaranathil chila niyantritha pravartthanangal aarambhikkaanulla padavi nedaanulla mattoru maargamund. atharam aanukoolyangal labhikkunnathin prakriyaykku dii. aarr. emm-maasttarude amgeekaaram undennu theliyikkunnathinayi ithu adisthaanaparamaayi dii. aarr. emm upakaranathinethiraaya praamaaneekarana reethiyaanu. nadapadikramam ulppedunnu
graphics execution maanejar.
viidiyoo memmariyude vardhichuvarunna valipavum ooppanjiel polulla graphics episukalude vardhichuvarunna sankeernathayum kaaranam, oro kondakst swichilum graphics card avastha punarnirmmikkanulla thanthram valare chelaveriyathum prakadanaparamaayathumaayirunnu. koodaathe, aadhunika linux desktoppukalkk compositing maanejarumaayi oof-screen bufferukal pankidaan oru mikacha maargam aavasyamaanu. eee aavasyakathakal kernalinullil graphics bufferukal kaikaaryam cheiyunnathinulla puthiya reethikalude vikasanathilekku nayichu. graphics execution maanejar" (jemm) eee reethikalil onnaayi uyarnnuvannu.
jemm vyakthamaaya memory maanejment primitteevukalulla oru api nalkunnu. rathnathiloode, oru user-space prograaminu gpu viidiyoo memmariyil thamasikkunna memory objectukal srishtikkaanum kaikaaryam cheyyaanum nasippikkaanum kazhiyum. jemm objectukal" ennu vilikkappedunna eee vasthukkal upayokthru-space prograaminte veekshanakonil ninnu sthirathayullavayaanu, koodaathe prograam jipiyuvinte niyanthranam veendedukkumbozhellaam veendum looad cheyyendathilla. oru user-space prograaminu viidiyoo memmariyude oru bhagam aavashyamaayi varumbol (oru framebuffer, texture allengil gpuk aavashyamaaya mattethenkilum daatta sambharikkunnathin), athu jemm api upayogichu dii. aarr. emm driverk vihitam abhyarthikkunnu. drm driver upayogicha viidiyoo memmariyude track sookshikkukayum soujanya memory labhyamaanengil abhyarthana palikkaan kazhiyukayum varum pravarthanangalil anuvadicha memory kooduthal ruffer cheiyunnathinaayi upayokthru sthalathekku oru "handle" thirike nalkukayum cheiyunnu. jemm epi bufferine janavasamullathaakkunnathinum aavashyamillaathappol athu purathuvidunnathinumulla pravartthanangalum nalkunnu. upayokthru-space prakriya dii. aarr. emm. upakarana phayal discriptar adaykkumbozho athu avasaanikkumbozho purathirangaattha jemm handilukalil ninnulla memory veendedukkunnu.
ore dii. aarr. emm upakaranam (athinaal ore dii. aarr. emm driver) upayogichu rando athiladhikamo upayokthru-space prakriyakal oru ratna vasthu pankidaan jemm anuvadikkunnu. jemm handilukal oru prakriyaykku savisheshamaaya praadeshika 32-bitt poornnasamkhyakalaanu, ennaal mattu prakriyakalil aavarthikkaan kazhiyum, athinaal pankidunnathinu anuyojyamalla. oru aagola namespace aavasyamaanu, koodaathe "jemm names" ennu vilikkunna aagola haandilukalude upayogathiloode jemm orennam nalkunnu. oru ratnanamam ennathu ore dii. aarr. emm. driver ore dii. aarr. emm. upakaranathinullil oru advitheeya 32-bitt poornnasankhya upayogichu srishticha orennam, orennam maathram, ratna vasthuvine soochippikkunnu. oru ratna kaippidiyil ninnu oru ratnanamam labhikkunnathin ratnam oru ooppareshan "flink" nalkunnu. labhyamaya eathenkilum aii. pii. sii samvidaanam upayogichu eee prakriyaykku eee ratnanamam (32-bitt poornnasankhya) mattoru prakriyayilekku kaimaran kazhiyum. yadhaartha ratna vasthuvilekku viral choondunna oru praadeshika ratna handle labhikkunnathin sweekarthaavinte prakriyaykku rathnathinte peru upayogikkaam.
nirbhagyavashaal, bufferukal pankidaan rathnanaamangal upayogikkunnathu surakshithamalla. ore dii. aarr. emm upakaranam axus cheiyunna oru kshudrakaramaaya moonnaam kakshi prakriyaykku 32-bitt poornnasamkhyakal parishodhichu mattu rund prakriyakal pankitta oru bafarinte ratnanamam oohikkaan sramikkaam. oru ratnanamam kandethiyaal, bafarinte vivarangalude rahasyathmakathayum samagrathayum lamghikkunna athinte ulladakkangal axus cheyyaanum parishkkarikkanum kazhiyum. eee poraayma pinneedu dii. aarr. emmilekku dii. emm. eiii-buff pinthuna avatharippichukondu marikadannu, kaaranam dii. emm. eiii-buff userspaceile bafarukale phayal discriptarukalaayi prathinidheekarikkunnu, avaa surakshithamaayi pankidaan kazhiyum.
viidiyoo-memory space kaikaaryam cheiyunnathinupurame eathoru viidiyoo-memory maanejment systethinteyum mattoru pradhana jolie gpyuvum cpuvum thammilulla memory samanvayam kaikaaryam cheyyuka ennathaanu. nilavile memory aarkkitekcharukal valare sankeernamaanu, saadhaaranayaayi sisttam memoric chilappol viidiyoo memoric vividha thalatthilulla kashukal ulppedunnu. athinaal, cpuvum gpyuvum thammil pankidunna daatta sthiramaanennu urappakkaan viidiyoo-memory maanejarmaar kaashe coherence kaikaaryam cheyyanam. ithinartham palappozhum viidiyoo-memory maanejment intenalukal jipiyuvinteyum memory aarkkitekcharinteyum hardware vishadaamshangale valareyadhikam aasrayikkunnu, athinaal driver-nirddishtamaanu.
intal enchineeyarmaaraanu athinte i915 driverinu oru viidiyoo-memory maanejar nalkunnathinaayi jemm aadyam vikasippichath. intal gma 9Xx kudumbam jipsine ekeekritha memory aarkkitekcharumaayi (uma) samyojippichirikkunnu, avide gpyuvum cpuvum physical memory pankidunnu, koodaathe oru samarppita vraam illa. memory synchronisationaayi "memory domainukal" jemm nirvachikkunnu, eee memory domainukal gpu-swathanthramaanengilum, avaa prathyekamaayi oru uma memory architecture manassil vechaanu roopakalppana cheythirikkunnathu, ithu oru prathyeka vraam polulla mattu memory aarkkitekcharukalkku anuyojyamalla. ekkaaranathaal, mattu dii. aarr. emm drivermar jemm api enna user-space prograamukal thurannukaattaan theerumaanichittundenkum aantharikamaayi avar avarude prathyeka hardwarein memory architecturinum anuyojyamaaya mattoru memory maanejar nadappilaakki.
jemm epi execution phloo (command bufferukal) niyantrikkunnathinaayi ioctalukalum nalkunnu, pakshe avaa intal-nirddishtamaanu, intal aii 915, pinneedu jipas ennivaykkoppam upayogikkum. memory maanejment nirddishta ayoktalukalkkappuram jemm epiaiyude oru bhaagavum nadappilakkaan mattoru dii. aarr. emm driver sramichittilla.
vivarthana pattika maappukal.
"rathnathinu munbu vikasippichedutha jipasinte pothuvaaya memory maanejarinte peraanu "translation table maps" (ttm). samarppita viidiyoo raam (saadhaaranayaayi viidiyoo cardle instaal cheythirikkunnu), graphics adrus remapping table (gart) ennu vilikkunna aii/oo memory maanejment yoonit vazhi axus cheyyaavunna sisttam memory ennivayulppede oru gpu axus cheyyaan kazhiyunna vividha tharam memory kaikaaryam cheiyunnathinaanu ithu prathyekamaayi roopakalppana cheythirikkunnathu. upayokthru-space graphics aaplikkeshanukal saadhaaranayaayi valia alavil viidiyoo daattayumaayi pravarthikkunnuvennu kanakkiledukkumbol, cpu nerittu abhisambodhana cheyyaan kazhiyaatha viidiyoo raaminte bhaagangalum ttm kaikaaryam cheyyukayum saadhyamaaya ettavum mikacha prakadanatthode athu cheyyukayum venam. ulppettirikkunna vyathyastha oormmakalum kaashukalum thammilulla sthiratha nilanirthuka ennathaayirunnu mattoru pradhana kaaryam.
ttminte pradhana ashayam "buffer objectukal" aanu, chila ghattangalil gpu abhisambodhana cheyyaavunna viidiyoo memmariyude pradeshangal. oru user-space graphics aaplikkeshan oru prathyeka buffer objectilekku (saadhaaranayaayi ulladakkam upayogichu niraykkaan) axus aagrahikkumbol, ttminu athu cpu adrus cheyyaavunna oru tharam memmariyilekku maattendathundu. gpuk oru buffer objectilekku praveshanam aavashyamullappol kooduthal sthalammaattam-allengil gart mapping pravartthanangal-sambhavikkam, pakshe athu ithuvare jipiyuvinte vilasa sthalathu illa. eee sthalammaatta pravarthanangalil oronnum bandhapetta daattayum kaashe-currency prashnangalum kaikaaryam cheyyanam.
mattoru pradhana ttm ashayam "velikal" aanu. cpuvum gpyuvum thammilulla ekathaanatha niyanthrikkunnathinulla oru samvidaanamaanu velikal. saadhaaranayaayi axus ulla eathenkilum user-space prakriya ariyikkunnathinayi gpu oru buffer object upayogikkaathappol oru veli track cheiyunnu.
oru samarppita vraam ullathum illaathathum ulppede ellaatharam memory aarkkitekcharukalum anuyojyamaaya reethiyil kaikaaryam cheyyaanum eathu tharatthilulla hardwareilum upayogikkunnathinaayi oru memory maanejaril sangalppikkaan kazhiyunna ellah savisheshathakalum nalkaanum ttm shramichuvennath aavashyathekkaal valare valia oru api ulla amithamaya sankeernamaaya parihaaratthilekku nayichu. eathenkilum prathyeka driverumaayi, prathyekichu eiii. pii. aii. yumayi ithu nannayi yojikkillenn chila dii. aarr. emm. developermar karuthi. lalithamaaya memory manejaraayi jemm uyarnnuvannappol, ttm onninekkaal athinte epikkaanu munganana nalkiyathu. ennaal chila driver developermar ttm sweekaricha sameepanam samarppita viidiyoo memory iomus ulla vyathiriktha viidiyoo cardukalkku kooduthal anuyojyamaanennu karuthi, athinaal avar ttm aantharikamaayi upayogikkaan theerumaanichu, athesamayam avarude buffer vasthukkal ratna vasthukkalaayi thurannukaattukayum angane ratna apy pinthunaykkukayum cheythu. eiii. emm. dii viidiyoo kaardukalkkulla rediyan driver envidia viidiyoo kaardukalkkulla noview driverumaanu ttm oru intenal memory manejaraayi upayogikkunna nilavile driverukalude udaaharanagal.
dii. emm. eiii buffer sharing prime.
dii. emm. eiii buffer sharing api" (palappozhum dii. emm. eiii-buff ennu churukkipparayunnu) onniladhikam upakaranangaliludaneelam dii. emm. eiii bufferukal pankidunnathinulla oru pothuvaaya samvidaanam nalkunnathinu roopakalppana cheytha oru linux kernel intenal api aanu, ithu vividha tharam device drivermar kaikaaryam cheythirikkaam. udaaharanathinu, oru viidiyoo4linux upakaranathinum oru graphics adapter upakaranathinum aadyathethu nirmmikkukayum randaamathethu upayogikkukayum cheiyunna oru viidiyoo streaminte daattayude poojyam pakarpp nedunnathinu dma-bafiloode bufferukal pankidaan kazhiyum. eathoru linux device driverk eee eiii. pii. aii. kayattumathikkaaranaayi, upayokthavaayi (upabhokthaav) allengil randum aayi nadappilakkaan kazhiyum.
discretinteyum samyojitha jipiyuvinteyum drm driverukalkkidayil falamaayundaakunna framebufferukal pankidaan dma-buff upayogikkunna gpu offloadinginulla pariharamaaya prime nadappilakkaan drmil aadyamaayi eee savisheshatha upayogichu. oru phayal discriptaraayi upayokthru idathinu oru pankitta buffer avatharippikkunnu ennathaanu dma-bufinte oru pradhana savisheshatha. prime vikasippikkunnathinayi rund puthiya ioctalukal dii. aarr. emm. eiii. pii. aii. yill chertthu, onnu oru praadeshika jemm handle oru dii. emm. eiii-buff phayal discriptaraayi parivartthanam cheiyunnathinum mattonn krithyamaaya vipareeta pravartthanatthinum.
eee rund puthiya ioctalukalum pinneedu jemm buffer pankidalinte antharleenamaaya surakshithathvamillaathu pariharikkunnathinulla oru maargamaayi veendum upayogichu. rathnanamangalil ninnu vyathyasthamayi, phayal discriptarukal oohikkaan kazhiyilla (avaa oru aagola namespace allah), koodaathe unix operating sisttangal schm _ raitts semantics upayogichu oru unix domaine sokkattiloode avaa kadannupokaan surakshithamaaya maargam nalkunnu. oru ratna vasthu mattoru prakriyayumaayi pankidaan aagrahikkunna oru prakriyaykku athinte praadeshika ratna handle oru dma-buff phayal discriptaraayi parivartthanam cheyyaanum sweekarthaavinu kaimaran kazhiyum, athu sweekaricha phayal discriptaril ninnu athintethaaya ratna handle nedaanum kazhiyum. klayantinum ex serverinum idayil bufferukal pankidunnathinum veldiloodeyum eee reethi dry 3 upayogikkunnu.
kernel mooad krameekaranam.
shariyaayi pravarthikkunnathinu, oru viidiyoo cardo graphics adaptero oru "mooad" sajjeekarikkanam-screen resolution, kalar depth, refreshes rettu ennivayude samyojanam-athu svayam pinthunaykkunna moolyangalude paridhikkullilaan. eee pravartthanatthe mooad-setting ennu vilikkunnu, ithinu saadhaaranayaayi graphics hardwarelake asamskritha axus aavasyamaanu-i.iii. viidiyoo card display kantrolarinte chila rajisttarukalil ezhuthaanulla kazhivu. framebuffer upayogikkaan thudangunnathinu munbu oru mooad-setting pravartthanam nadatthanam, koodaathe oru aaplikkeshano upayokthaavo mooad maattendivarumbozhum.
aadyakaalangalil, graaphikkal framebuffer upayogikkaan aagrahikkunna upayokthru space prograamukalum mooad-setting pravartthanangal nalkunnathinu utharavaadikalaayirunnu, athinaal avaa viidiyoo hardwarelake prathyeka axus upayogichu pravarthippikkendathundu. unix-type operating sisttangalil, ex server ettavum pradhanappetta udaaharanamaayirunnu, athinte mooad-setting nadappaakkal oro prathyeka tharam viidiyoo cardinum ddx driverilaayirunnu. pinneedu "user space mooad-setting" allengil ums ennu vilikkappedunna eee sameepanam niravadhi prasnangal uyarthunnu. ithu operating sisttangal prograamukalum hardware thammil nalkenda ottappedal thakarkkuka mathramalla, sthirathayum suraksha aashankakalum uyarthukayum cheiyunnu, mathramalla rando athiladhikamo user space prograamukal ore samayam mooad-setting cheyyaan shramikkukayaanenkil graphics hardwareine asthiramaaya avasthayil upekshikkukayum cheyyum. eee vairudhyangal ozhivakkaan, x server praayogikamaayi mooad-setting pravartthanangal nadatthiya eaka upayokthru space prograamaayi maari; bakkiyulla upayokthru space prograamukal uchithamaaya mooad sajjeekarikkunnathinum mooad-setting ulppedunna mattethenkilum pravartthanam kaikaaryam cheiyunnathinum x serverine aashrayichu. thudakkathil mooad-setting ex server staarttap prakriyayil mathramaayirunnu, ennaal pinneedu pravartthikkumbol ex serverinu athu cheyyaanulla kazhivu labhichu. x serverilekku eathenkilum x klayant abhyarthana modalin (resolution) mattangal anuvadikkunnathinaayi xfre86 3.1.2-ll xfre86-vidmeedxtension ekstenshan avatharippichu. widmode ekstenshane pinneedu kooduthal pothuvaaya exrander ekstenshan maatti.
ennirunnaalum, oru linux sisttathil coode cheiyunna mooad-setting ithaayirunnilla. sisttam booting prakriyayil, linux kernel vertual kansolinaayi oru minimum tekst mooad sajjamaakkanam (vesa bios ekstenshanukal nirvachicha staanderd modukale adisthaanamaakki). linux kernel framebuffer driveril framebuffer upakaranangal krameekarikkunnathinulla mooad-setting coode adangiyirunnu. mooad-setting vairudhyangal ozhivakkaan, xfre86 server pinneedu x umm.oorgu server-upayokthaav graaphikkal parithasthithiyil ninnu oru tekst vertual kansolilekku maariyappol athinte mooad-setting avastha samrakshikkukayum upayokthaav x lake thirichethiyappol athu punasthaapikkukayum cheythukondu cases kaikaaryam cheythu. eee prakriya parivartthanatthil shalyappeduthunna oru minnal undaakkukayum paraajayappedukayum cheythekkaam, ithu kedupaadukal sambhavichatho upayogashoonyamaayatho aaya outtputtu displayilekk nayikkunnu.
user space mooad krameekarana sameepanam mattu prasnangalkkum kaaranamaayi
eee prasnangal pariharikkunnathin, mooad-setting coode kernalinullil orotta sthalathekku maatti, prathyekichu nilavilulla drm modulilekku. appol, ex server ulppedeyulla oro prakriyaykkum-mooad-setting pravartthanangal nadatthaan kernalinode aajnaapikkaan kazhiyanam, koodaathe kankarant pravartthanangal asthiramaaya avasthayilekku nayikkunnillennu kernel urappakkum. eee mooad-setting pravartthanangal nadatthaan dii. aarr. emm modulilekku cherttha puthiya kernel apyum code "kernel mooad-setting" (kilometer) ennu vilikkapettu.
kernel mooad krameekaranam niravadhi aanukoolyangal nalkunnu. kernelil (linux kansol, efbidev) ninnum user spacil (ex server ddx driverukal) ninnum duplicate mooad-setting coode neekkam cheyyuka ennathaanu ettavum udanadi. ippol swantham mooad-setting coode nadappilaakkenda aavashyamillaatha badal graphics samvidaanangal ezhuthunnathum kilometerukal eluppamaakkunnu. kendreekritha mooad maanejment nalkunnathiloode, kansolinum x num idayil maarumbol, x-nte vyathyastha udaaharanagalkkum (phaast user switching) idayil minnunna prasnangal kilometerukal pariharikkunnu. ithu kernelil labhyamayathinaal, boot prakriyayude thudakkathilum ithu upayogikkaam, eee prarambha ghattangalile mooad mattangal kaaranam minnal labhikkam.
keey. emm. kernelinte bhagamaanenna vastutha, intereptukal polulla kernel sthalathu maathram labhyamaya vibhavangal upayogikkaan anuvadikkunnu. udaaharanathinu, oru suspended/resueme prakriyaykku sheshamulla mooad recovery kernel thanne kaikaaryam cheiyunnathiloode valareyadhikam lalithamaakkukayum aakasmikamaayi suraksha mechappeduthukayum cheiyunnu (root anumathikal aavasyamulla upayokthru space toolukal illa). puthiya display upakaranangalude hotplug eluppathil anuvadikkukayum deerghakaalamaayi nilanilkkunna prashnam pariharikkukayum cheiyunnu. framebufferukal adisthaanaparamaayi memory bafarukalaayathinaal, graphics memory maanejarumaayi oru karsanamaaya samyojanam valare shupaarsha cheiyunnathinaal, mooad-setting memory maanejmentumaayi adutha bandhamullathaan. kernel mooad-setting coode oru prathyeka subsistamaayittalla, dii. aarr. emmilekku ulppeduthaanulla pradhana kaaranam athaanu.
dii. aarr. emm. eiii. pii. aii. yude pinnottulla anuyojyatha thakarkkunnath ozhivakkaan, chila dii. aarr. emm driverukalude adhika "driver savisheshatha" aayi kernel mooad-krameekaranam nalkunnu. kilometer apiye pinthunaykkunnuvennu soochippikkunnathinu eathoru dii. aarr. emm driverk dii. aarr. emm koril rajisttar cheyyumbol flag nalkaan thiranjedukkaam. kernel mooad-setting nadappilaakkunna drivermaare palappozhum "kilometer drivermar" ennu vilikkunnu, avarkk paarambaryatthil ninnu-kilometer illaathe-dii. aarr. emm drivermaaril ninnu verthirichariyaanulla oru maargamaayi.
3dii aaksilareshan illaatha (allengil hardware ventor athu velippeduthaano nadappilaakkaano aagrahikkaatha) chila driverukal display serverukale (welland pole) eluppathil pravarthippikkaan anuvadikkunna backie drm api illaathe kilometer api nadappilaakkunna tharatthil kilometerukal sweekarichittundu.
kilometer upakarana model.
oru display kantrolarinte display outtputtu pipelinil saadhaaranayaayi kaanapedunna amoortha hardware blokkukalude oru parambarayaayi kilometer outtputtu upakaranangale maathrkayaakkukayum kaikaaryam cheyyukayum cheiyunnu. eee blokkukal ivayaanu
aattomik display.
sameepa varshangalil kilometer epiyumaayi bandhapetta chila pathiv pravarthanangalil, prathyekichu mooad krameekaranatthilum peju flipping pravarthanangalilum aattomitti konduvaraan thudarchayaaya sramangal nadakkunnundu. eee mechappeduthiya kilometer apiye "aattomik display" ennu vilikkunnu (munbu "aattomik mooad-setting" ennum "aattomik" allengil "nuclear pageflip" ennum ariyappettirunnu).
aattomik mooad-settinginte" uddeshyam onniladhikam niyanthranangalode sankeernamaaya konfigareshanukalil modinte sariyaaya maattam urappaakkuka ennathaanu, asthiramo asaadhuvaayatho aaya viidiyoo avasthayilekku nayichekkaavunna intermediat gattangal ozhivaakkuka; parajayappetta mooad-setting prakriya pazhayapadiyaakkendivarumbol apakadakaramaaya viidiyoo avasthakalum ithu ozhivaakkunnu ("rollback"). mooad testing kazhivukal nalkikkond chila nirddishta mooad konfigareshan uchithamaano ennu munkootty arian aattomik mooad-setting anuvadikkunnu. oru aattomik mooad pareekshikkukayum athinte saadhuta sthireekarikkukayum cheyyumbol, athu orotta avibhaajya (aattomik) prathibaddhatha pravartthanatthiloode prayogikkaan kazhiyum. testt, kammitt pravartthanangal enniva nalkunnathu vyathyastha flaagukalulla ore puthiya ioactilaanu.
"maruvashathu "aattomik peju flip" ore aouttputtil onniladhikam playinukal update cheyyaan anuvadikkunnu (udaaharanathinu primery playin, cursor playin, chila ovarle allengil secondary playinukal) ellaam ore wiblank edavelaykkullil samanvayippikkukayum keerathe sariyaaya display urappakkukayum cheiyunnu. vaidyuthi labhikkaan onniladhikam playinukal/ovarlekal upayogikkunna mobail, embaded display kantrolarukalkku eee aavasyakatha prathyekichum prasakthamaanu.
pazhaya kilometer apiye adisthaanamaakkiyaanu puthiya aattomik apiye nirmmichirikkunnathu. ithu ore modalum objectukalum (crtc, encoderukal, connectorukal, playinukal, enniva) upayogikkunnu...), ennaal parishkkarikkan kazhiyunna object propertykalude ennam vardhikkunnu. nammal pareekshikkaano prathijnjaabadhamaakkaano aagrahikkunna avastha kettippadukkunnathinna prasakthamaaya gunangal maattunnathine adisthaanamaakkiyullathaanu aattomik nadapadikramam. njangal parishkkarikkan aagrahikkunna savisheshathakal oru mooad-setting (kooduthalum crtc, encoderukal, connectorukal propertykal) allengil peju flipping (saadhaaranayaayi playin propertykal) cheyyano ennathine aasrayichirikkunnu. rund kesukalilum ioactal thulyamaanu, vyathyasam oronninum paasaya propertykalude pattikayaanu.
nodukal render cheyyuka.
yadhaartha drm apiyil, drm upakaranam cockways _ 2 prathyekaavakaashamulla (modessetting, mattu display kantrol), prathyekaavakaashamillaath (rendering, gpgpu computed) pravarthanangalkkaayi upayogikkunnu. suraksha kaaranangalal, anubandha dii. aarr. emm. upakarana phayal thurakkunnathinu "root-previlegukalkku thulyamaaya" prathyeka aanukoolyangal aavasyamaanu. ithu chila vishwasaneeyamaaya user space prograamukal (ex server, oru graaphikkal composittar) maathram ulla oru vaasthuvidyayilekku nayikkunnu...) modsettu epi polulla prathyeka bhagangal ulppede dii. aarr. emm. epiyilekku poornna axus undu. gpgpu kanakkukoottalukal render cheyyaano nirmmikkaano aagrahikkunna mattu upayokthru space aaplikkeshanukal oru prathyeka praamaaneekarana interface upayogichu dii. aarr. emm upakaranathinte ("dii. aarr. emm maasttar") udama anuvadikkanam. appol aadhikaarika aaplikkeshanukalkku prathyeka pravarthanangalillaathe drm epiaiyude niyantritha pathipp upayogichu render cheyyaano kanakkukoottalukal nadathaano kazhiyum. eee design kadutha oru niyanthranam earppeduthunnu ellaayppozhum oru pravarthanakshamamaaya graphics server (ex server, oru wayland composittar,) undaayirikkanam...) oru dii. aarr. emm upakaranathinte dii. aarr. emm-maastaraayi pravartthikkunnu, angane gpgpu kanakkukoottalukal polulla graphics display ulppedaatha saahacharyangalil polum mattu upayokthru space prograamukalkku upakaranathinte upayogam anuvadikkaan kazhiyum.
render nodukal" enna ashayam eee saahacharyangal pariharikkan sramikkunnathu dii. aarr. emm user space apiye rund interfaceukalaayi vibhajikkunnathiloodeyum-onnu prathyekaavakaashavum mattonn prathyekaavakaashamillaathum-oronninum prathyeka upakarana fayalukal (allengil "nodukal") upayogikkunnathiloodeyum aanu. kandethiya oro gpu-ykkum, athinte anubandha drm driver-athu render nodukalude savisheshathaye pinthunaykkunnundel-primery nooad kookk 2-nuu purame "render nooad" ennu vilikkunna oru upakarana phayal kookk 6 srishtikkunnu. nerittulla rendering modalum jipiyuvinte computing soukaryangal prayojanappedutthaan aagrahikkunna aaplikkeshanukalum upayogikkunna klayantukalkku, nilavilulla eathenkilum render nooad thurakkunnathiloodeyum aaa nodukal pinthunaykkunna drm epiaiyude parimithamaaya upavibhagam upayogichu gpu pravartthanangal ayaykkunnathiloodeyum adhika aanukoolyangal aavasyamillaathe ithu cheyyaan kazhiyum-avarkk upakarana phayal thurakkaan phayal sisttam anumathikal undengil. display serverukal, composittarukal, modsettu api allengil mattethenkilum prathyeka pravartthanam aavasyamulla mattethenkilum prograam enniva poornnamaaya dii. aarr. emm. epiyilekku praveshanam nalkunna staanderd primery nooad thurakkukayum pathivupole upayogikkukayum venam. surakshithamallaatha jemm aagola perukal upayogichu buffer pankidunnathu thadayunnathinaayi jemm "flink" pravartthanatthe render nodukal vyakthamaayi anuvadikkunnilla; graphics server ulppede mattoru klayantumaayi bufferukal pankidaan prime (dma-buff) phayal discriptarukal maathrame upayogikkaan kazhiyoo.
hardware pinthuna.
linux drm subsistathil desktop computerukalkkaayulla jipiyasinte 3 pradhana nirmmaathaakkalil (amd, envidia, intal) ninnum athupole thanne chipp (sook) integrettarukalile mobail gpu, sisttam ennivayude vardhichuvarunna ennathil ninnum hardwareine pinthunaykkunnathinulla soujanyavum ooppan sozhsumaaya driverukal ulppedunnu. nirmmaathaavinte sahakaranathinteyum mattu kaaryangaludeyum alavine aashrayich oro driverinteyum gunanilavaaram valare vyathyaasappedunnu.
charitraparamaaya aavasyangalkkaayi adutha pattikayil vishadamaakkiya pazhayathum kaalaharanappettathumaya hardwareinaayi niravadhi driverukalum undu. avayil chilath ippozhum kernel codil avasheshikkunnundenkil avayil mikathum ithinakam neekkam cheythittundu.
vikasanam.
direct rendering maanejar linux kernalinullil vikasippicheduthittundu, athinte sozhs coode linux sozhs kodinte kokwish _ 8 directoryilaanu. dave airley aanu subsistom maintainer, mattu maintainermaar nirddishta drivermaare paripaalikkunnu. linux kernel vikasanathil pathivupole, dii. aarr. emm sub maintainarmaarum sambhaavakarum puthiya savisheshathakalum bugg pariharangalumulla avarude paachukal pradhana dii. aarr. emm maintanarilekku ayaykkunnu, athu avaye swantham linux shekharavumaayi samyojippikkunnu. oru puthiya linux pathipp puratthirangaan pokumbozhellaam linus torvaldukalilekku mainline cheyyaan thayyaraya eee paachukalellaam dii. aarr. emm maintainer samarppikkunnu. muzhuvan kernalinteyum topp maintainer enna nilayil, oru paachu kernelil ulppeduthunnathinu anuyojyamaano allayo ennathinekkurichulla avasana vaakk torwalds vahikkunnu.
charitraparamaaya kaaranangalal, lbdrm libraryude sozhs coode messa padhathiyude kudakkeezhilaanu paripaalikkunnath.
charithram.
1999-ll, exphree86-naayi dry vikasippikkumbol, krithyamaaya ulkkaazhcha 3dafaqaaiiiizaiiii viidiyoo kaardukalkkaayi dii. aarr. emminte aadya pathipp srishtichu, messa sozhs codil ulppeduthiyittulla linux kernel paachu aayi. aaa varsham avasaanam, akshara upakaranangalkkayulla kokwos _ 9 directoric keezhil linux kernel 2.3.18 ll dii. aarr. emm coode mainline cheythu. thudarnnulla varshangalil pinthunaykkunna viidiyoo kaardukalude ennam vardhichu. 2001 januvariyil linux 2.4 purathirangumbol 3dafaqaaiiiizaiiii woodoo 3 cardukalkku purame creative labukalaaya gmx 2000, intal aii810, matrox jii 200/jii 400, edi raage 128 ennivaykku ithinakam pinthuna undaayirunnu, koodaathe 2.4. x shreniyil aaa pattika vipuleekarichu, edi radian kaardukalkkulla driverukal, chila sis viidiyoo cardukal, intal 830 meter, thudarnnulla samyojitha jipas enniva.
2004-nte randaam pakuthiyil "drm coor/pezhsanaalitti splitt" ennu vilikkunna drm coor, drm driver ennee rund gadakangalaayi drm vibhajikkukayum kernel pathipp 2.6.11-ll layippikkukayum cheythu. eee vibhajanam onniladhikam upakaranangalkkayi onniladhikam drm driverukale oresamayam pravartthikkaan anuvadikkukayum multy-gpu pinthunayilekkulla vazhi thurakkukayum cheythu.
ellah viidiyoo mooad setting kodukalum kernalinullil oridathu sthaapikkuka enna ashayam varshangalayi amgeekarikkappettirunnu, ennaal oro graphics cardinteyum viidiyoo biosil adangiyirikkunna pathiv reethikal svayam upayogikkuka ennathaanu mooad setting cheyyaanulla eaka maarggamenn graphics card nirmmathaakkal vaadichu. atharam coode x86 riyal mooad upayogichu execute cheyyendivannu, ithu samrakshitha modil pravartthikkunna oru kernel vazhi athu vilikkunnathil ninnu thadanju. luke verhegan mattu davalapparmaarum bios adisthaanamaakkiyullathinu pakaram mooad-setting praadeshikamaayi cheyyaanulla oru maargam kandethiyappol sahacharyam maari, ithu saadhaarana kernel coode upayogichu ithu cheyyaan kazhiyumennu kaanikkukayum "kernel mooad krameekaranam" aayi maarunnathinulla adithara paakukayum cheythu. 2007 meyy maasathil jessy barnus (intal) oru "drm-modessetting" epiykkum aii915 drm driverinullil intal jipasinaayi mooad-settinginte pravarthanaparamaaya thaddesheeya nadappakkalinum vendiyulla aadya nirddesham prasidheekarichu. 2007 desemberil jerom glissy radion dii. aarr. emm driverilekku edi kaardukalkkulla native mooad-setting coode cherkkaan thudangi. 2008ll eiii. pii. aii., driverukal ennivayude pravartthanam thudarnnenkilum framebufferukal kaikaaryam cheiyunnathinu kernel sthalathu oru memory maanejarude aavasyavum kaaranam vaikukayaayirunnu.
varaanirikkunna chila supradhana maattangalkk munbu 2008 octoberil linux kernel 2.6.27 oru pradhana sozhs coode punasamghadana konduvannu. drm sozhs coode trea athinte swantham sozhs directory cockways _ 10 lake maattukayum vyathyastha driverukale avarude swantham sub directorykalilekku maattukayum cheythu. headerukal oru puthiya cockways _ 11 directoryilekku maatti.
viidiyoo memory maanejmentinte vardhichuvarunna sankeernnatha eee prashnam pariharikkunnathinulla niravadhi sameepanangalilekku nayichu. emma unholt (intal), dave airley (redu haatt) ennivayumaayi sahakarichu thomas helstrom (tangsttan graphics) vikasippichedutha "translation table maps" (ttm) memory maanejaraayirunnu aadya sramam. 2007 novemberilum 2008 meyy maasathilum mainline kernel <aii. dii. 1>-ll ulppeduthunnathinaayi tii. tii. emm nirddeshikkappettirum "graphics execution maanejar" (jemm) enna puthiya sameepanathin anukoolamaayi athu upekshichu. avarude aii915 driverinaayi memory maanejmentinulla lalithamaaya parihaaramaayi intalil ninnulla kaith packered emma unholt chernnaanu jemm aadyamaayi vikasippichath. 2008 desemberil purathirangiya linux kernel pathippaya 2.6.28-ll jeminu mikacha sveekaaryatha labikkukayum layippikkukayum cheythu. athesamayam, puthiya rediyan kilometer drm driverinte aavasyakathayaayi ttminu oduvil linux 2.6.31-ll layippikkaan 2009 septambar vare kaathirikkendi vannu.
buffer objectukal kaikaaryam cheiyunnathinaayi memory maanejment ullathinaal, dii. aarr. emm developermark oduvil kernalilekku ithinakam poortthiyaakkiya apiyum coode mode cherkkaan kazhiyum. eee vipuleekaricha apiye "kernel mooad-setting" (kilometer) ennum ithu nadappilaakkunna drivermaare palappozhum "kilometer drivermar" ennum vilikkunnu. 2009 maarchil, aii915 driverinulla kilometer supportinoppam linux kernel pathipp 2.6.29-ll kilometerukal layippichu. libdrm 2.4.3 muthal kilometer api upayokthru space prograamukalkku vidheyamaayittundu.intal graphics kaardukalkkayulla oorgu ddx driver puthiya ratnavum kilometer epis aadyamaayi upayogichu. 2009 septambarile linux <aii. dii. 1> releasilake rediyan dii. aarr. emm driverinulla kilometer pinthuna chertthu. puthiya radian kilometer driver tii. tii. emm memory maanejar upayogichuvenkilum tii. tii. emmukalkku pakaram jemm-anuyojyamaaya interfaceukalum ioctalukalum thurannukaatti.
2006 muthal audyogika linux kernalinu purathu envidia jipasinaayi oru swatantra software drm driver vikasippichukondirukku. 2010ll noview sozhs coode linux 2.6.33-ll oru pareekshanathmaka driveraayi layippichu. layippikkumbol, driver ithinakam thanne kilometerukalaayi parivartthanam cheyyappettirunnu, jemm epiykku pinnil ttm athinte memory manejaraayi upayogichu.
jemm epi ulppedeyulla puthiya kilometer epi-dii. aarr. emminte vikasanathile oru valia naazhikakkallaayirunnu, pakshe thudarnnulla varshangalil ithu epi mechappeduthunnathu thadanjilla. linux <aii. dii. 1> leeii asinkranas wiblank ariyippukalumayi chernnu peju flippukalkku kilometerukal pinthuna nedi-aii915 driverinu maathram, radiyanum nauveyum pinneedu linux <aii. dii. 2> releasinide chertthu. puthiya peju flip interface libdrm 2.4.17-ll chertthu. 2011-nte thudakkathil, linux 2.6.39 release sykkilil, framebufferukalaayi upayogikkaan anuyojyamaaya lalithamaaya bufferukal kaikaaryam cheiyunnathinulla hardware-swatantra noonn-accelerated maarggamaaya "dumb bufferukal" ennu vilikkappedunnava kilometer eiii. pii. aii.-yill chertthu. driver-nirddishta ioctalukal nalkunna prathyeka accelered ooppareshanukal upayogikkenda aavashyamillaatha plymouth polulla aaplikkeshanukalude sankeernnatha kuraykkuka ennathaayirunnu lakshyam. 2.4.25 pathippil ninnu libdram eee savisheshatha thurannukaatti. aaa varsham thanne ithinu "plains" ennu vilikkunna oru puthiya pradhana tharam vasthukkalum labhichu. scaaunt enchin pinthunaykkunna hardware ovarlekale prathinidheekarikkunnathinna vimanangal vikasippichath. playin support linux 3.3., libdram <aii. dii. 1> ennivayumaayi layippichu. linux 3.5, libdram <aii. dii. 2> releasukal ennivaykkide eiii. pii. aii. yill cherttha mattoru ashayam "generic object propertykal" aayirunnu, eathu kilometer objectilekkum generic moolyangal cherkkunnathinulla oru reethiyaanithu. crtc, plains thudangiya vasthukkalil prathyeka swabhaavamo savisheshathakalo sajjamakkaan savisheshathakal prathyekamaayi upayogapradamaanu.
drm drivermarkidayil gpu offloading nalkunnathinulla aashayathinte aadyakaala thelivu 2010 ll dave airley vikasippicheduthu. airley envidia opttimas saankethikavidya anukarikkaan sramikkunnathinaal, athinu "prime" ennu peridaan addeham theerumaanichu. 2011 avasaanathode airley prime thante jolie punaraarambhichu, pakshe linux kernel avatharippicha puthiya dma-buff buffer pankidal samvidaanathe adisthaanamaakki. adisthaana dma-buff prime infrastructure 2012 maarchil poortthiyaakki linux 3.4 releasilum libdram 2.4.34 lum layippichu. pinneedu linux 3.5 releasinide, niravadhi dii. aarr. emm drivermar prime pinthuna nadappaakki, intal cardukalkku aii915, emdi cardukalkku radion, envidia cardukalkku noview ennivayulppede.
sameepa varshangalil, puthiyathum mechappettathumaaya savisheshathakalode drm api vardhichuvarikayaanu. 2013ll, gsocyude bhaagamaayi, david herman onniladhikam "render nodukal" savisheshatha vikasippichu. linux kernel pathipp 3.12-ll addehathinte coode chertthathu i915, radion, nauvyoo drivermar pinthunaykkunna oru pareekshanathmaka savisheshathayaayum linux 3,17 muthal sthirasthithiyaayi pravarthanakshamamaakkiyathumaanu. 2014-ll maatt ropper (intal) "yoonivezhsal playinukal" (allengil "unified playinukal") enna ashayam vikasippichu, athil framebufferukal ("primery playinukal"), ovarlekal ("secondary playinukal"), karsarukal ("cursor playinukal") ennivayellaam oru ekeekritha api ulla orotta tharam objectaayi kanakkaakkappedunnu. saarvathrika vimaanangalude pinthuna kurachumaathravum kooduthal pothuvayathumaaya ayoktalukalulla kooduthal sthirathayulla oru dii. aarr. emm. api nalkunnu. api pinnott anuyojyamaayi nilanirthunnathinu, oru dii. aarr. emm driverk nalkaan kazhiyunna oru adhika seshiyaayi dii. aarr. emm coor eee savisheshatha thurannukaattunnu. linux 3.15, libdram 2.4.55 ennivayil saarvathrika playin pinthuna aarambhichu. intal aii915 polulla niravadhi driverukal ithinakam ithu nadappaakkiyittund.
ettavum puthiya dii. aarr. emm. api mechappeduthal "aattomik mooad-setting" api aanu, ithu oru dii. aarr. emm upakaranathile mooad-setting, peju flipping pravarthanangalil aattomitti konduvarunnu. 2012-nte thudakkathil mooad-settinginaayi oru aattomik epi enna ashayam aadyamaayi nirddeshikkappettu. atharam aattomik epi roopakalppana cheiyunnathinum nadappilaakkunnathinumalla chumatala ville sirjala (intal) etteduthu. addehathinte kruthiyude adisthaanathil, roob clark (texas upakaranangal) aattomik peju flippukal nadappilakkaan lakshyamit samanamaaya sameepanam sweekarichu. pinneedu 2013-ll nirddishta rund savisheshathakalum rund jolikalkkum orotta ioactal upayogichu onnaayi punarekeekarichu. ithu oru aavasyamaayathinaal, 2014 madhyathil saarvathrika vimaanangalude pinthuna layippikkunnathinaayi eee savisheshatha kaathirikkendivannu. 2014 nte randaam pakuthiyil daniel vettarum (intal) mattu dii. aarr. emm davalapparmaarum puthiya aattomik chattakkoodilekku nilavilulla kilometer drivermark parivartthanam sugamamaakkunnathin aattomik coode valareyadhikam mechappeduthi. eee pravarthanangalellaam oduvil linux 3.19, linux 4.0 releasukalilekku layippikkukayum linux 4.0 muthal sthirasthithiyaayi pravarthanakshamamaakkukayum cheythu. pathipp 2.4.62 muthal puthiya aattomik api libdram thurannukaatti. onniladhikam driverukal ithinakam puthiya aattomik api aayi parivartthanam cheythittundu. 2018 aayappozhekkum eee puthiya aattomik modaline adisthaanamaakkiyulla patthu puthiya dii. aarr. emm driverukal linux kernelil cherkkapettu.
datthedukkal.
direct rendering maanejar kernel subsistom thudakkathil vikasippicheduthath xfre86 display servarinte puthiya direct rendering infrastructurinoppam upayogikkunnathinaayi, pinneedu athinte pingamiyaaya x-nuu paarambaryamaayi labhichu.oorgu server. athinaal, messa 3 dii libraryilum ex serverilum thamasikkunna hardware-accelerated ooppanjiel nadappaakkalumaayi bandhippikkunna dry klayantukalaayirunnu drminte pradhana upayokthaakkal. vesttan reference composittar ulppede niravadhi wayland composittarukalum ippol drm upayogikkunnu. drm kilometer soukaryangal upayogichu upayokthru sthalathu pravartthikkunna oru vertual kansol nadappakkalaanu kmcon.
2015ll, propraittari envidia jephozhs driverinte pathipp 358.09 (beetta) nuu cocks _ 12 enna puthiya kernel blobe aayi nadappilaakkiya drm mooad-setting interfacinu pinthuna labhichu. eee puthiya driver ghadakam display enchin prograam cheiyunnathinu cocks _ 13 kernel modyoolumaayi samyojichu pravartthikkunnu (athaayath.iii. jipiyuvinte display kantrolar).

