Mir on avoimen lähdekoodin ja vapaa näyttö palvelin tekniikka, joka on suunniteltu alusta asti tukemaan tehokkaasti grafiikka yhteistyössä prosessorit GNU / Linux-järjestelmissä. Se on kehittänyt Canonical maailman & rsquo; s suosituin ilmainen käyttöjärjestelmä, Ubuntu.
Asiakas ja palvelin toteutukset
Mir jakautuu sekä asiakkaan (libmirclient) ja palvelimen (libmirserver). Se on suunniteltu drop-in korvaaja X Window System (X.Org) Ubuntu ja sen johdannaiset. Se on myös yhteensopiva Android näytönohjaimet.
Mir ja XMir tuotteet jaetaan oletusarvoisesti tulevista julkaisuista Ubuntu Linux-käyttöjärjestelmä kehittämä Canonical. Se on myös oletusnäyttöön palvelinta käytetään nykyisen vakaan vapauttamista Ubuntu Touch mobiili käyttöjärjestelmä virran älypuhelimille ja tabletit.
Mitä & rsquo; s mukana
Mir koostuu useista komponenteista, jotka ovat välttämättömiä nykyaikaiselle näyttö palvelimen, kuten compositor, tulo johtaja, tuotanto johtaja, sovellus johtaja, sekä inter-sovelluksen tiedonvaihdon toimivuutta.
Ohjelmisto on jotenkin samanlainen toiminnallisuus ja raskaasti innoittamana laajalti käytetty X.Org näyttö palvelin, joka on tällä hetkellä toteutettu 99,9% kaikista GNU / Linux, sekä upouusi Wayland näyttö palvelimelle.
Se on suunniteltu tukemaan monia nykyisten laitteiden compositors, suunniteltu kohti EGL / GL (ES), ja hyödyntää olemassa olevia kuljettajia, jotka toteuttavat Android ohjainmallia.
Pinnan alla ja tuetuista käyttöjärjestelmistä
Ohjelma on alustasta riippumaton ja kirjoitettu kokonaan C ++ ohjelmointikieltä, suunniteltu toimimaan GNU / Linux-järjestelmissä, BSD jakaumat, sekä muita UNIX-kuin alustoilla.
Se on testattu sekä 32-bittinen ja 64-bittinen käskykanta arkkitehtuurit, ja uusin versio voidaan testata nykyisellä vapauttamista Ubuntu Linux-käyttöjärjestelmissä tai tarttumalla uusimman lähdekoodin virallisen arkistosta.
Mikä on uusi tässä julkaisussa:
- Parannukset:
- Lisätty uusi väline "mirvanity", joka voi käyttää Suumopeusvideokamerallaja mitata asiakas-näytön latenssin.
- Lisätty (build-aika) tuki työpöydälle koko OpenGL palvelimia (oletuksena poissa käytöstä hyväksi GLESv2).
- Käyttöön uusi puskuri semantiikka (NBS) ja mahdollistanut sen oletusarvoisesti.
- vältteli libmirserver vuonna mir_demo_standalone_render_overlays, mikä bringup jälkiä selkeämpi.
- Poistettu TilingWindowManager esimerkistä palvelimia.
- lisätyt kaksi uutta mir _ * _ performance_test välineitä, jotka ajetaan osana "mir_performance_tests".
- Lisätty osoitin synnytyksen asiakkaalle API.
- Lisätty uusi kannattava alusta ohjelmistoja EGLStreams.
- lisätyt tulo alustan että sisäkkäistä palvelin voi käyttää.
- Salli kokoonpanosta application_not_responding_detector
- Kahva palvelinpuolen keymapping käyttäen XKBMapper.
- Poista offscreen näyttö.
- Lisää soittopyyntö mahdollisuus ilmoittaa kuoret, että palvelin on aikeissa lopettaa.
- Lisää kirjaamisoikeudet ANativeWindow tapahtumia Android.
- ABI yhteenveto:
- mirclient ABI ennallaan 9
- mirserver ABI törmäsi 41
- mircommon ABI ennallaan 6
- mirplatform ABI törmäsi 12
- mirprotobuf ABI ennallaan 3
- mirplatformgraphics ABI törmäsi 10
- mirclientplatform ABI ennallaan 5
- mirinputplatform ABI ennallaan 5
Mikä on uusi versiossa 0.18.0:
- Grafiikka:
- Sisäinen valmistelutyötä tarvittavien Vulkan, laitteisto dekoodata multimedia optimointeja, ja latenssi parannuksia sisäkkäisiä palvelimille.
- aloitti työnsä plugin renderointilaitokset. Tämän avulla voidaan paremmin valmistautua mir varten esineiden internet, jossa emme ehkä ole Vulkan / gles pino laitteessa, ja joutua käyttämään CPU.
- Korjauksia grafiikka korruptiosta vaikuttavat Xmir (kulmikasta mustat palkit)
- Various korjauksia varten multimonitor skenaarioita sekä parempi tuki skaalauksen puskurit, jotka sopivat näytön sen päälle.
- Syöttö:
- Käytä libinput oletuksena. Meillä oli nojaten vanha versio Android tulon pino. Kokonaan poistaa tämä hyväksi käyttäen libinput.
- Bugs:
- Melko pitkä lista bug korjauksen. Jotkut näistä eivät koskaan "luonnossa", mutta oli olemassa aikana 0,18 kehitystä.
Mikä on uusi versiossa 0.17.0:
- ABI yhteenveto: Vain palvelimet ja grafiikka kuljettajan on uudelleenrakentaminen;
- Mirclient ABI ennallaan 9
- Mirserver ABI törmäsi 35
- Mircommon ABI ennallaan 5
- Mirplatform ABI törmäsi 11
- Mirprotobuf ABI törmäsi 3
- Mirplatformgraphics ABI törmäsi 6
- Mirclientplatform ABI ennallaan 3
- Parannukset:
- Esittele libmircookie, yksinkertainen mekanismi ryhmä yhteistyössä prosessien ojentaa ja tarkistaa vaikeasti väärentää aikaleimat luoteta 3rd osapuolille.
- Lisää refactorings tukemaan renderointilaitokset muita kuin GL.
- Lisää MirBlob asiakkaalle API - työkalu sarjoittamista ja deserializing tiedot.
- Esittele libinput perustuva tulo alustan, ei ole vielä käytetty oletuksena.
- Anna mekanismin kuori lähettää tapahtumia pintarakenne.
- Anna mir :: kuori :: DisplayConfigurationController avulla kuoret oikein muuttaa näytön kokoonpano, ilmoittamalla asiakkaita tarvittaessa.
- Uusi DSO versiointi oppaan.
- Lähetä tapahtumia liittyvät ulostulo pinta on tällä hetkellä (dpi, muoto tekijä, asteikko) asiakkaille.
- Vikakorjauksia:
- [parannus] XMir dokumentaatio pitäisi elää omassa momentissa (LP: # 1200114)
- sisäkkäisiä palvelimet on kohdistin tuki (LP: # 1289072)
- Mir kohdistin on puuttuva / näkymätön kunnes asiakas asettaa sen useita kertoja (LP: # 1308133)
- [regressio] Fullscreen ohjelmisto pinnat (kuten Xmir -sw) voi kaataa Mir-palvelimen (LP: # 1493721)
- [USC] Mir luopuu ja sammuu johtuen tulon kanssa multimonitor qtmir (std :: poikkeus :: mitä: Epäonnistuminen lähettäminen tulo tapahtuma) (LP: # 1496069)
- Hiiren osoitin katoaa tultaessa pinta sisäkkäisiä asiakas (LP: # 1496849)
- [android] tuloa ei lähetetä, kun liittää ulkoinen näyttö (LP: # 1498045)
- [android] input koordinaatit skaalataan virheellisesti, kun ulkoinen näyttö on kytketty (LP: # 1498540)
- [android] std :: poikkeus :: mitä: error aikana HWC setti (), kun irrotat ulkoisen näytön (LP: # 1498550)
- testeissä ei koota ilman käännetty otsikot (LP: # 1498829)
- [android] std :: poikkeus :: mitä: epäonnistui valvomaan fd: Toimenpidettä ei sallita, kun irrotat ulkoisen näytön Sisäkkäisistä kokoonpano (LP: # 1499042)
- Mir yhtäkkiä enää rakentaa, sillä "mesa (11,0.
0-1ubuntu1) wily ': /usr/include/EGL/eglplatform.h:100:35: kohtalokas virhe: android / native_window.h: Tiedostoa tai hakemistoa (LP: # 1499134)
- [android] eri kaatuu, kun irrotat ulkoisen näytön sisäkkäisiä kokoonpano (LP: # 1501927)
- kursori muuttuu näkyväksi itsekseen, kun ulkoinen näyttö on kytketty (LP: # 1502200)
- mesa FTBFS Puuttuvien edellyttää mirclient (LP: # 1503450)
Mikä on uusi versiossa 0.13.3:
- MirEvent uudelleenjärjestäminen
- jatkuu puskuriin semanttinen muutokset (jotka auttavat sisäkkäin ohitus)
- & quot; Sovellus ei vastaa & quot; haara ehdotettu
- Mir vs. X haara ehdotettu
- Jatkuva työ uudelleentyöstön QtMir käyttää WM käyttöliittymän Mir
- Jatkuva koordinoida vastavirtaan libinput muutoksista ehdotimme
- Platform API kanssa vanhentunut Mir koodi poistetaan prosessissa lasku
- Alkoi python-pohjainen teho testi puitteet toteuttamiseen
- aloittaminen arvioidaan Vulkan / WSI API
- Kiinteät fd vuotoja joitakin testejä
- kaksoispuskurointia tuki
Mikä on uusi versiossa 0.11.0:
- Pakkaus muutokset:
- muutosten vuoksi Mir ajurimalli asiakkaalle alustat eivät enää versioidut mukaan soname. Thusly libmirplatform5driver- (mesa | Android) korvataan mir-client-alusta- (mesa-Android). Uusi paketti mir-client-platform-mesa-dev on otettu käyttöön, jotka sisältävät otsakkeita aiemmin mirplatform-dev.
- Parannukset:
- Paljon enemmän suuria LVI Android koodia, tiellä tukemiseen ulkoisiin näyttöihin.
- Lisää tukea kalahtaa 3.6.
- Major uudelleensuunnittelu palvelimen luokkia mir :: kuori, kohtauksen ja ystävät (vielä kesken).
- Lisätty client API luomiseen valintaikkunat ja työkaluvihjeet.
- Lisätty uusi pintatilojen: mir_surface_state_hidden ja mir_surface_state_horizmaximized.
- Suorituskyky: Käytä hyötysuhteeltaan optimaalinen fragmentti varjostus kun se on mahdollista.
- Suorituskyky: (Desktop) Composite käyttäen kaksinkertainen puskuroida sijasta kolminkertainen vähentää näkyvää viivettä.
- mir_proving_server: Voi nyt ikkunan kokoa mistä tahansa reunasta tai nurkkaan käyttämällä nykyisiä Alt + middlebuttondrag.
- mir_proving_server: Lisätty joitakin demo mukautettuja shadereita (negatiivinen ja korkea kontrastivaihtoehdoista: Super + N / C).
- mir_proving_server: Can nyt lähellä asiakkaita kohteliaasti kautta Alt + F4.
- Lisätty MirPointerInputEvent (osa uutta tulo API, vanha MirMotionEvent tuetaan edelleen myös nyt).
- ABI yhteenveto: Palvelimet tarvitsevat uudelleenrakentaminen, mutta asiakkaat eivät; . Mirclient ABI ennallaan 8. Mircommon ABI ennallaan 3. Mirplatform ABI törmäsi 6. Mirserver ABI törmäsi 29
- Vikakorjauksia:
- [regressio] mir_demo_server poistuu välittömästi boost bad_any_cast poikkeus (LP: # 1414630)
- täytyy tapa asentoon valikot ja työkaluvihjeet (suhteellinen paikannus vanhemman) (LP: # 1324101)
- GLibMainLoopTest epäonnistuminen nähdään CI (LP: # 1413748)
- Clang rakentaa epäonnistua CI (LP: # 1416317)
- segfault in mir :: kompositioengine :: GLProgramFamily :: Shader :: init () (LP: # 1416482)
- GLRenderer: Oletus fragmentti shader on optimaalinen alfa = 1.
0 (LP: # 1350674)
- mesa :: DisplayBuffer :: post_update on kolminkertainen puskuroitu - enemmän laggy kuin sen pitäisi olla (LP: # 1350725)
- Ei voi yhdistää sisäkkäisiä palvelimeen, kun lähtötaso oli differointi vt (LP: # 1379266)
- [testfail] AsioMainLoopAlarmTest epäonnistuu CI (LP: # 1392256)
- Compositor raportti ristiriitaisesti raportoi kehyksen aikana ohitusleikkaus, ja tehdä aika muuten (LP: # 1408906)
- [regressio] mir_demo_client_fingerpaint ei maalaa enää mitään (hiirellä) (LP: # 1413139)
- Laitteisto kohdistin on aina hieman ennen koostuviin kuva (LP: # 1274408)
- kotoutumistesteistä syöttöä (liikaa) DisplayServer lokiviesteistä (LP: # 1408231)
- [regressio] deploy-and-test.sh ei toimi enää (ellet ole umockdev asennettu jo) (LP: # 1413479)
- Väri Inverse esillä. Vaihda Vastavärikuva (LP: # 1400580)
- mir-ubuntu-eloisa-armhf-ci epäonnistuu jatkuvasti (LP: # 1407863)
- Double-puskuroitu pinnat voivat jäädä tai jäätyä jos tapahtuma ajetaan eikä jatkuvasti uudelleenvetämisestä (LP: # 1395581)
- Pointer liikettä ja ylittäminen tapahtumia puuttuvat (LP: # 1417650)
Mikä on uusi versiossa 0.8:
- Tuki touchspots visuaalisesti näyttää kosketus paikkoja näytön, joskin kustannukset suorituskykyä.
- Mir asiakkaat voivat nyt paljastaa suorituskykyä tietoja, kuten kuvanopeus ja hahmontamisajat kautta asettamalla MIR_CLIENT_PERF_REPORT = log ympäristön muuttuja upottaa suorituskyvyn tiedot vakiotulosteeseen.
- Vähemmän herkkyys ABI taukoja piilottamalla otsikot altistumiselta, jotka ovat olleet käyttämättömät ulkoiset hankkeet jne Mukana on myös enemmän skriptejä nyt havaita ABI rikkoutuminen.
- Lisää parannuksia koskettaa reagointikykyä - myös vähemmän lag ja tasaisempi vieritys.
- Laitteisto kuvakepäällykset nyt oletusarvoisesti käytössä.
- Suuri määrä bug-korjauksia.
Mikä on uusi versiossa 0.1.2:
- grafiikka: android: parannetaan käyttöliittymä MGA :: DisplayDevice niin se vain huolissaan tekee ja lähettämistä.
- pinnat: nimeä & quot; pintojen & quot; komponentti & quot; kohtaus & quot;.
- pinnat, kuori: Siirrä Istuntotiedot malli kuori pintoihin.
- grafiikka: muutos fill_ipc_package () käyttää todellista viitteitä.
- mir_client_library.h: Fix typo & quot; tehdä ja lukitus & quot; pitäisi olla & quot; tee mitään lukitus & quot;.
- API laskentatulosten siivous: Poista hieman harhaanjohtava * _enum_max_ arvoja, ja korvata ne tarkempia monikkomuodot.
- test_android_communication_package: Älä odota avata fd olevan & gt; 0, meillä voi olla suljettu stdin joten tämä voimassa oleva arvo (LP: # 1247718).
- Päivitä dokumentit juostaan Mir työpöydällä mainita uuden paketin ubuntu-desktop-mir.
- offscreen: Lisää näyttöä, joka tekee sen lähtö offscreen puskurit
- grafiikka: android: korjata regressio hwc1.0 laitteiden käyttöön r1228 (LP: # 1252433).
- OffscreenPlatform tarjoaa palveluita että offscreen näyttö tarvitsee Platform.
- grafiikka: android: vakiinnuttaa GLContexts luokissa käytössä.
- Fix alustamattoman muuttuva aiheuttaa satunnaisia drm_auth_magic testi epäonnistumisia. (LP: # 1252144).
- Lisää fullyish toiminnallinen udev kääre. Tämä tällä hetkellä istuu grafiikka / gbm, mutta siirretään huipputason kun syöttölaite tunnistus vaeltaa.
- Lisää koon tukea esimerkkikoodia; demo-kuori ja asiakkaiden.
- eglapp: selkeyttäminen viestiä pikselin formaatit (LP: # 1168304).
- Lisää tukea MirMotionEvent alle pointer_coordinates kutsutaan tool_type. Näin asiakkaat kertomaan millaista työkalua käytetään, hiiren / sormen / etc. (LP: # 1252498)
- asiakas, frontend: Raportti todellinen käytettävissä oleva pinta pikselin formaattien asiakkaille. (LP: # 1240833)
- grafiikka: android: 1) muutos hwc1.1 hyödyntää sync aitojen aikana koostamissäiettä n gl renderloop. Huomaa, että emme enää odota tehdä loppuun, me siirtää tämän vastuun kuljettajan ja ytimen. 2) tuki nexus 10. (LP: # 1252173) (LP: # 1203268)
- kuori: älä julkaise SurfacesContainer - se voi olla yksityisiä kuori.
- gbm: Älä sotkea VT tilassa setup vika vain palauttaa edellisen VT mode sammutuksen aikana, jos se oli VT_AUTO.
- Fix kaatuu on viallinen eglMakeCurrent () call kun sisäkkäin tilassa.
- kuori: yhtenäisyys-mir käyttää shell :: FocusSetter - tehdä header yleisölle jälleen
- Lisää kokoa tukea asiakkaan pintoihin (mir :: client :: MirSurface).
- grafiikka: android: tuki "vanha aka 2012 'nexus 7 HWC (nvidia tegra3 SoC) parempi. (LP: # 1231917)
- Lisää kokoa tuki * ClientBuffer luokissa. Nyt aina mitat viimeisimmästä puskurin paketti.
- android: tuki kuljettaja koukkua Mali T604 (läsnä nexus 10)
- Lisää leveys ja korkeus protokollan Buffer viestit, valmisteltaessa resizable pinnoille.
- pintoja, kuori, puunkorjuu, testejä: eivät julkaise otsikoita, jotka voivat olla yksityisiä pintoihin. pinnat / basic_surface.h, pinnat / surface_controller.h ja Shell / surface_builder.h
- esimerkkejä: Palauta GL ruutupuskuri sitova, kun tuhoaa tehdä kohde
- esimerkkejä, pinnat, kuori: poista render_surfaces riippuvuus BasicSurface
- geometria: poistaa täytäntöönpano streaming toimijoiden otsikot (LP: # 1247820)
- poistaa rekisteröintipäätökseen painopiste järjestyksessä, taitto se toiminnallisuuden istuntoon säiliöön.
- Varmista, että istunto sovittelija vapauttaa hankittu puskuri resurssit ennen kuin se yrittää hankkia uusi puskuri puolesta asiakkaan.Tämä korjaa suorituskyky regressio (LP: # 1249210).
- Jotkut puhdistuksia ja test_client_input.cpp.
- tekijä pois kasan & quot; ClientConfigCommon & quot;.
- pienet uudelleenjärjestäminen istunnonkaappaushyökkäyksille astiaan testin lisätä kapselointi.
- kuori, pinnat: Toinen askel & quot; vahvistamisesta & quot; pinnat hierarkiat - julkaista vain rajapinnat ja laittoi tietomallin pintoihin.
- grafiikka: android: HWC1.1 käyttö EGL saada lisätietoja ruutupuskuri pikselin muodossa.
- Fix FTBS käyttäen use_debflags = ON (rakennuksen Android-armhf). (LP: # 1248014)
- Lisää asiakas syöttää vastaanottimen raportti.
- doc: Doxygen 1.8.4 murehtii vanhentunut config niin juoksi & quot; Doxygen u Doxyfile.in & quot;.
- Toteutetaan kokoa () varten palvelinpuolen Surface luokissa.
- android: siivota MGA :: DisplayBuffer ja MGA :: DisplayBufferFactory
- Lisää kokoa () tuki BufferStream, valmisteltaessa resizable pinnoille.
- Yhdistä metatietojen muutoksia hiljattain kunnostettu lp: mir
- testejä: deduplicate mg :: GraphicBufferAllocator stubs.
- esimerkkejä: Poista väärä käyttö mir / Shell / surface.h.
- käyttöliittymään: poista ClientTrackingSurface maanpinta luokkahierarkia
- Törmäämättä ABI päälle palvelimelle libmirserver11.
- Älä mainitse & quot; Renderable & quot ;. Tämä liitäntä ei ole ollut olemassa jo jonkin aikaa.
- android-tulo: Määritä enemmän ainutlaatuinen kosketusnäyttö ids.
Mikä on uusi versiossa 0.1.1:
- Uusi laite testejä, erilaisia korjauksia välttää julkaisemalla sisäisiä otsikot, tuki eritellään Mir sisäkkäisiä palvelimen nimen joko kautta --name = argumentti tai MIR_SERVER_NAME ympäristömuuttuja, refaktorointi on Mir Android näyttö luokat, ja ensimmäinen vaihe tuotettaessa pinta kokoa tukea.
Kommentteja ei löytynyt