Mir este o sursă deschisă și tehnologie server de afișare liber, care a fost proiectat de la sol pentru a oferi un sprijin eficient pentru grafica co-procesoare pe sistemele GNU / Linux. Acesta este dezvoltat de Canonical pentru lume & rsquo;. Cel mai popular sistem de operare liber, Ubuntu
Client și server implementări
Mir este distribuit atât client (libmirclient) și server (libmirserver). Acesta a fost conceput ca un înlocuitor drop-in pentru X Window System (X.Org) pe Ubuntu și derivații săi. Este, de asemenea, compatibil cu driverele grafice Android.
Produsele Mir și XMir vor fi distribuite în mod implicit pe viitoarele versiuni ale sistemului de operare Ubuntu Linux dezvoltat de Canonical. Este, de asemenea, serverul de afișare implicit utilizat pe versiunea curentă stabilă a sistemului de operare mobil Ubuntu Touch pentru alimentarea smartphone-uri și tablete.
Ce & rsquo; s inclus
Mir cuprinde mai multe componente, care sunt esențiale pentru orice server de afișare moderne, cum ar fi un zețar, manager de intrare, manager de ieșire, managerul de aplicații, precum și funcționalitatea de schimb de date inter-app.
Software-ul este oarecum identic în funcționalitatea cu și puternic inspirat de serverul utilizat pe scară largă X.Org de afișare, care este în prezent pusă în aplicare în 99,9% din toate distribuțiile GNU / Linux, precum și serverul de afișare Wayland nou-nouț.
Acesta a fost proiectat pentru a sprijini multe dintre zețari hardware existente, proiectate către EGL / GL (ES), și să profite de drivere existente care implementează modelul driverului Android.
În conformitate cu sistemele de operare capotei și susținute
Programul este independent de platforma și scrisă în întregime în limbajul de programare C ++, proiectat pentru a rula pe sistemele GNU / Linux, BSD distribuții, precum și alte platforme UNIX-like.
Acesta a fost testat cu succes cu arhitecturi atât pe 32 de biți și set de instrucțiuni pe 64 de biți, iar cea mai recentă versiune poate fi testat pe versiunea curentă a Ubuntu Linux sisteme de operare sau prin apucarea cel mai nou cod sursă din depozitul său oficial.
Ce este nou în această versiune:
- Îmbunătățiri:
- A adăugat un nou instrument de "mirvanity", care se poate utiliza o camera video de mare viteză pentru a măsura client-to-screen latență.
- Adăugat (build-time) suport pentru desktop completă servere OpenGL (dezactivată în mod implicit în favoarea GLESv2).
- a introdus noi semantica tampon (BNS) și-a permis în mod implicit.
- folosind libmirserver în Evitată mir_demo_standalone_render_overlays, ceea ce face bringup urme mai puțin aglomerat.
- Eliminat TilingWindowManager de exemplu, servere.
- Adăugat două noi RMD _ * _ performance_test instrumente care sunt rulate ca parte a "mir_performance_tests".
- Adăugat indicatorul de naștere la API client.
- Adăugat platformă nouă de sprijin EGLStreams software.
- Adăugat o platformă de intrare care serverul cuibărit poate utiliza.
- Permite configurarea application_not_responding_detector
- keymapping mâner de server-side folosind XKBMapper.
- Scoateți afișajul în afara ecranului.
- Adăugați opțiunea de apel invers pentru a notifica cochilii că serverul este pe cale să se oprească.
- Adauga logare pentru evenimente ANativeWindow pe Android.
- rezumat ABI:
- mirclient ABI neschimbat la 9
- mirserver ABI lovit la 41
- mircommon ABI neschimbat, la 6
- mirplatform ABI lovit la 12
- mirprotobuf ABI neschimbat la 3
- mirplatformgraphics ABI lovit 10
- mirclientplatform ABI neschimbat la 5
- mirinputplatform ABI neschimbat la 5
Ce este nou în versiunea 0.18.0:
- Grafică:
- Pregătirea internă necesară pentru Vulkan, hardware-ul decodificat optimizări multimedia, și îmbunătățiri de latență pentru serverele imbricate.
- A început să lucreze la renderers plugin-ul. Acest lucru va pregăti mai bine RMD pentru IoT, în cazul în care s-ar putea să nu aibă o stivă Vulkan / GLES pe dispozitiv, și s-ar putea să utilizeze CPU.
- Remedieri pentru corupție grafică care afectează Xmir (bare negre blocky)
- Diverse corecții pentru scenarii multimonitor, precum și un suport mai bun pentru scalarea tampoane pentru a se potrivi monitorului său pe.
- Intrare:
- Utilizați libinput în mod prestabilit. Fuseserăm sprijinindu-se pe o versiune mai veche a Android stiva de intrare. elimina complet acest lucru în favoarea utilizării libinput.
- Bugs:
- Destul de o listă lungă de corectare a erorilor. Unele dintre acestea nu au fost niciodată "în sălbăticie", dar a existat în curs de dezvoltare 0,18.
Ce este nou în versiunea 0.17.0:
- rezumat ABI: Numai servere și drivere grafice trebuie să reconstruiască;
- Mirclient ABI neschimbat la 9
- Mirserver ABI lovit la 35
- Mircommon ABI neschimbat la 5
- Mirplatform ABI lovit la 11
- Mirprotobuf ABI lovit la 3
- Mirplatformgraphics ABI lovit la 6
- Mirclientplatform ABI neschimbat la 3
- Îmbunătățiri:
- Introducerea libmircookie, un mecanism simplu pentru un grup de procese care au cooperat pentru a înmâna și să verifice dificil de falsificat către părți a 3-timestamp-untrusted.
- Mai multe refactorings pentru a sprijini alte renderers decât GL.
- Adăugați MirBlob la API client. - Un instrument pentru serializarea și deserializing date
- Introducerea unei platforme de intrare pe bază de libinput, nu au fost încă utilizate în mod implicit.
- va oferi un mecanism pentru shell-ul pentru a trimite evenimente de pe suprafața de construcție.
- Furnizarea :: shell :: Mir DisplayConfigurationController care permite cochilii să se schimbe în mod corect configurația de afișare, notificarea clienților, după caz.
- New DSO versionare ghid.
- Trimiteți evenimente referitoare la ieșire o suprafață este în prezent pe (dpi, factor de formă, scală) la clienți.
- Bug stabilește:
- documentația specifică [accesoriu] XMir ar trebui să trăiască în propria sa sub-secțiunea (LP: # 1200114)
- Serverele imbricate au nevoie de sprijin cursor (LP: # 1289072)
- Mir cursorul este lipsă / invizibil până când clientul setează-l de mai multe ori (LP: # 1308133)
- [regresie] suprafețe de software pe tot ecranul (cum ar fi Xmir -sw) poate crash serverul de Mir (LP: # 1493721)
- [usc] Mir cedează și se închide din cauza de intrare cu qtmir multimonitor (std :: excepție :: Ce: Eșec trimiterea evenimentului de intrare) (LP: # 1496069)
- cursorul mouse-ului dispare la intrarea în zona de suprafață a unui client imbricată (LP: # 1496849)
- [Android] de intrare nu este trimis atunci când atașarea unui monitor extern (LP: # 1498045)
- [Android] coordonatele de intrare sunt scalate incorect când un monitor extern este conectat (LP: # 1498540)
- [Android] std :: excepție :: Ce: eroare în timpul set HWC () atunci când deconectați monitorul extern (LP: # 1498550)
- teste nu compila fără a antete precompilate (LP: # 1498829)
- [Android] std :: excepție :: ce: nu a reușit să monitorizeze IFD: Operația nu este permisă atunci când deconectați afișajul extern într-o configurație suprapusă (LP: # 1499042)
- Mir dintr-o dată nu se mai construiește deoarece "mesa (11,0.
0-1ubuntu1) șiretul ': /usr/include/EGL/eglplatform.h:100:35: eroare fatală: Android / native_window.h: Nu există un astfel de fișier sau director (LP: # 1499134)
- [Android] diferite accidente atunci când deconectați afișajul extern pe o configurație suprapusă (LP: # 1501927)
- Cursor devine vizibil de la sine atunci când este conectat un monitor extern (LP: # 1502200)
- mesa FTBFS din cauza lipsei Necesită în mirclient (LP: # 1503450)
Ce este nou în versiunea 0.13.3:
- MirEvent de curățare
- continuare pe tampon modificări semantice (care va ajuta la by-pass incapsulate)
- & quot; Aplicația nu răspunde & quot; sucursală a propus
- Mir-on-X ramura propusă
- continuat să lucreze la recondiționarea QtMir pentru a utiliza interfața WM în Mir
- Continuare coordonare cu privire la schimbările în amonte libinput am propus
- api Platforma cu depreciată cod Mir este eliminat în proces de debarcare
- A început o punere în aplicare perf cadru de test bazat pe python
- A început evaluarea Vulkan / WSI API
- fd scurgerile fixe în unele teste
- Suport dublu tamponare
Ce este nou în versiunea 0.11.0:
- Modificări de ambalare:
- Din cauza modificărilor din modelul de conducător auto Mir platformele client nu mai sunt versionată de soname. libmirplatform5driver- thusly (mesa | Android) se înlocuiește cu miR-client-de platforma (mesa-Android). Se introduce un nou pachet client-miR-platforma-mesa-dev conținând antetele anterior în mirplatform-dev.
- Îmbunătățiri:
- Loturi mai multe instalații sanitare majore în codul Android, pe calea de a sprijini display-uri externe.
- Adăugați suport pentru zăngăni 3.6.
- reproiectarea majore ale claselor de server în coajă :: mir, scena și prieteni (încă în curs de desfășurare).
- Adăugat client API pentru a crea dialoguri și tooltips.
- Adăugat noi stări de suprafață:. Mir_surface_state_hidden și mir_surface_state_horizmaximized
- Performanță:. Folosiți umbrire optim eficient atunci când este posibil un fragment
- Performanță:. (Desktop) compozit, folosind dubla tamponare in loc de triplu pentru a reduce vizibil lag
- mir_proving_server: Se poate redimensiona ferestrele de la orice margine sau de colț, folosind Alt existent + middlebuttondrag .
- mir_proving_server: Adăugat unele shaderele demo personalizate (moduri de contrast negativ și de înaltă: Super + N / C) .
- mir_proving_server:. Pot clienții închide acum politicos prin intermediul Alt + F4
- Adăugat MirPointerInputEvent (o parte din noul API de intrare, vechiul MirMotionEvent este încă sprijinit, de asemenea, pentru moment).
- Rezumatul ABI: Serverele au nevoie de a reconstrui, dar clienții nu fac; . Mirclient ABI neschimbat la 8. Mircommon ABI neschimbat la 3. Mirplatform ABI lovit la 6. Mirserver ABI lovit la 29
- Bug stabilește:
- [regresie] mir_demo_server iese imediat cu impuls bad_any_cast excepție (LP: # 1414630)
- mod de a avea nevoie de meniuri de poziție și ponturile (poziționare față de părinte) (LP: # 1324101)
- eșec GLibMainLoopTest văzut în CI (LP: # 1413748)
- zăngănit construiește eșuează în CI (LP: # 1416317)
- segfault în :: tipograf :: Mir GLProgramFamily :: Shader :: init () (LP: # 1416482)
- GLRenderer: shader fragment implicit este sub optim pentru alfa = 1.
0 (LP: # 1350674)
- mesa :: DisplayBuffer :: post_update este triplu tamponat - mai mult decât laggy aceasta trebuie să fie (LP: # 1350725)
- Nu se poate conecta la serverul imbricat atunci când a pornit de la un vt Diferenț (LP: # 1379266)
- [testfail] nu AsioMainLoopAlarmTest în CI (LP: # 1392256)
- Raportul Compositor rapoarte inconsecvent timp cadru în timpul by-pass, și timpul de redare în caz contrar (LP: # 1408906)
- [regresie] mir_demo_client_fingerpaint nu vopsea mai nimic (cu mouse-ul) (LP: # 1413139)
- Hardware cursorul este întotdeauna ușor înaintea imaginii compuse (LP: # 1274408)
- teste de integrare sunt la ieșire (prea multe) DisplayServer log mesaje (LP: # 1408231)
- [regresie] deploy-and-test.sh nu mai funcționează (dacă nu aveți instalat deja umockdev) (LP: # 1413479)
- Color Inverse pe ecran. Comuta Imagine negativă (LP: # 1400580)
- miR-ubuntu-vie-armhf-CI eșuează în mod constant (LP: # 1407863)
- suprafețe duble tamponată pot lag sau îngheța în cazul în care evenimentul condus și nu retrasarea în mod constant (LP: # 1395581)
- mișcare pointer și trecere evenimente lipsesc (LP: # 1417650)
Ce este nou în versiunea 0.8:
- Suport pentru touchspots vizual pentru a afișa locațiile tactile de pe ecran, chiar dacă la costul de performanță.
- Mir clienții pot expune acum informații de performanță cum ar fi ratele de cadre și de randare ori prin setarea variabilei MIR_CLIENT_PERF_REPORT = mediu jurnal pentru a arunca informația de performanță la ieșirea standard.
- Mai puțin sensibilitate la pauze ABI prin ascunderea antetele de a fi expuse, care au fost neutilizate de proiecte externe etc. Există, de asemenea, mai multe script-uri acum pentru a detecta ABI spargere.
- Mai multe îmbunătățiri pentru a atinge capacitatea de reacție. - Inclusiv mai puțin lag și derulare mai lină
- suprapuneri de hardware sunt activate în mod implicit.
- Un număr mare de bug-fixat.
Ce este nou în versiunea 0.1.2:
- grafică: Android:. Îmbunătăți interfață pentru mgA :: DisplayDevice, astfel doar sa preocupat de redare și publicare
- suprafețe: Redenumiți & quot; suprafețe & quot; componentă la & quot; scena & quot;.
- suprafețe, coajă: migrați model de date de sesiune din coajă de la suprafețe .
- grafică: schimbarea fill_ipc_package () să utilizeze indicii reale .
- mir_client_library.h: Fix typo & quot; face și blocare & quot; ar trebui să fie & quot; face orice blocare & quot;.
- API de curățare: Eliminați ușor înșelătoare * valorile _enum_max_, și să le înlocuiască cu forme de plural mai precise .
- test_android_communication_package:. Nu vă așteptați să fie IFD deschis & gt; 0, am putea avea stdin închise a face aceasta valoare validă (LP: # 1247718)
- Actualizare documente despre care rulează Mir pe desktop pentru a menționa nou pachet ubuntu-desktop-mir.
- offscreen: Adăugați un ecran care face iesirea buffer-elor offscreen
- grafică: Android: fix de regresie pentru dispozitivele hwc1.0 introduse în r1228 (LP: # 1252433) .
- OffscreenPlatform furnizează serviciile pe care afișajul offscreen are nevoie de platformă.
- grafică: Android:. Consolidarea claselor GLContexts în timpul utilizării
- Fix variabilă neinitializate provocând eșecuri de testare drm_auth_magic aleatoare. (LP: # 1,252,144).
- Adăugați un înveliș funcțional fullyish UDEV. Acest lucru se află în prezent în grafica / GBM, dar va fi mutat la nivel superior, atunci când dispozitivul de intrare de detectare a migreaza.
- Adăugați redimensionarea sprijin exemplului de cod; demo-shell și clienții.
- eglapp: clarificarea mesajelor despre formate de pixeli (LP: # 1,168,304).
- Adaugă suport pentru MirMotionEvent sub pointer_coordinates numit tool_type. Acest lucru va permite clienților să spună ce tip de instrument este utilizat, de la mouse-ul / degetul / etc. (LP: # 1252498)
- client, Frontend a: Raportul real formate de pixeli de suprafață disponibile clienților. (LP: # 1240833)
- grafică: Android: 1) schimbarea hwc1.1 pentru a face uz de garduri de sincronizare în timpul renderloop gl Compositor lui. Rețineți că nu mai așteptăm render pentru a finaliza, vom trece această responsabilitate conducătorului auto și a kernel-ului. 2) sprijin 10. Nexus (LP: # 1252173) (LP: # 1203268)
- shell: nu publicați SurfacesContainer - poate fi privat shell .
- GBM:. Nu stricati modul VT în caz de eșec de configurare a restabili numai modul VT anterior în timpul opririi în cazul în care aceasta a fost VT_AUTO
- Fix-un accident din cauza unui apel atunci când în modul de cuibărit a eșuat eglMakeCurrent ().
- shell: unitatea-shell :: foloseste Mir FocusSetter - face publicul din nou antet
- Adăugați suport Resize pentru suprafete client (client :: :: mir MirSurface).
- grafică: Android: sprijin "vechi aka 2012 'Nexus 7 HWC (nvidia SoC Tegra3) mai bine. (LP: # 1231917)
- Adăugați suport redimensiona la clase * ClientBuffer. Acum, întotdeauna dimensiuni de la cel mai recent pachet de tampon.
- Android: Suport conducător auto cârlige pentru Mali T604 (prezente în Nexus 10)
- Adăugați lățimea și înălțimea protocolului mesajelor tampon, în curs de pregătire pentru suprafețe redimensionabile.
- suprafețe, coajă, logare, teste: nu publică headere care pot fi private pentru suprafețe. suprafețe / basic_surface.h, suprafețe / surface_controller.h și coajă / surface_builder.h
- exemple: Recuperează de legare atunci când distrugerea țintă face GL framebuffer
- exemple, suprafețe, coajă: elimina dependența render_surfaces pe BasicSurface
- geometrie: elimina punerea în aplicare a operatorilor de streaming din antete (LP: # 1247820)
- Eliminarea secvența de focalizare ordinea de înregistrare, pliere este funcționalitatea în a containerului sesiune.
- Asigurați-vă că eliberează sesiune mediator dobândite resurse tampon înainte de a încerca să achiziționeze un nou buffer în numele clientului.Acest lucru stabilește regresie de performanță (LP: # 1,249,210).
- Unele cleanups la test_client_input.cpp.
- Factor dintr-o mulțime de & quot; ClientConfigCommon & quot;.
- Curățire mici pentru a testa containere sesiune pentru a crește încapsulare.
- coajă, suprafețe: Un alt pas în & quot; fixarea & quot; suprafetelor ierarhiilor. - să publice numai interfețe și punerea modelului de date în suprafețe
- grafică: Android:. Utilizarea HWC1.1 EGL pentru a obține informații suplimentare cu privire la formatul framebuffer pixeli
- Fix preconectorizat folosind use_debflags = ON (clădire pentru Android-armhf). (LP: # 1248014)
- Adăugați un raport de receptor de intrare client.
- doc: Doxygen 1.8.4 se plânge de un config învechit, astfel fugit & quot; Doxygen u Doxyfile.in & quot; .
- Punerea în aplicare a resize () pentru clasele de suprafață de server-side.
- Android: curat mgA :: DisplayBuffer si mgA :: DisplayBufferFactory
- Add resize () suport pentru BufferStream, în curs de pregătire pentru suprafețe redimensionabile.
- Fuzionare modificările de metadate din lp nou reconstruit: mir
- Teste: Deduplicați cioturi mg :: GraphicBufferAllocator .
- Exemple: Eliminați utilizarea contrafăcut de mir / shell / surface.h.
- Frontend a: elimina ClientTrackingSurface din ierarhie de clase de suprafață
- Bumping ABI pe server pentru a libmirserver11.
- Nu mai vorbim & quot; Renderable & quot ;. Această interfață nu a existat de ceva timp.
- android-input:. Atribuiți id-uri tactile mai unice
enumerările
Ce este nou în versiunea 0.1.1:
- Noi teste unitare, diverse remedieri pentru a evita publicarea internă antete, suport pentru specificarea Mir imbricată numele serverului, fie printr-un --name = argument sau variabila de mediu MIR_SERVER_NAME, refactorizarea din clasele de afișare Mir Android, și un prim pas spre suprafața de sprijin redimensiona.
Comentariile nu a fost găsit