Mir is een open source en gratis vertoning server technologie die is ontworpen vanaf de grond opgebouwd om efficiënte ondersteuning voor grafische co-processors op GNU / Linux systemen. Het is ontwikkeld door Canonical voor de wereld & rsquo;. S meest populaire gratis besturingssysteem Ubuntu
Client en server-implementaties
Mir wordt gedistribueerd als zowel de cliënt (libmirclient) en server (libmirserver). Het is ontworpen als een drop-in vervanger voor de X Window System (X.Org) op Ubuntu en zijn derivaten. Het is ook compatibel met de Android grafische drivers.
De Mir en XMir producten worden gedistribueerd door standaard over toekomstige releases van de Ubuntu Linux-besturingssysteem ontwikkeld door Canonical. Het is ook de standaard weergave server gebruikt op de huidige stabiele release van de Ubuntu Touch mobiele besturingssysteem voor het aandrijven van smartphones en tablets.
Wat & rsquo; s opgenomen
Mir bestaat uit een aantal componenten die essentieel zijn voor elke moderne vertoning server, zoals een letterzetter, ingang manager, productie manager, applicatiebeheerder, evenals inter-app gegevensuitwisseling functionaliteit.
De software is enigszins gelijk in functionaliteit en zwaar geïnspireerd door de gebruikte X.Org X server bevat die in 99,9% van GNU / Linux distributies wordt uitgevoerd, evenals de gloednieuwe Wayland X server.
Het is ontworpen ter ondersteuning van een groot aantal van de bestaande hardware zetters, ontworpen in de richting van EGL / GL (ES), en te profiteren van de bestaande drivers die het Android-driver model in te voeren.
Onder de motorkap en de ondersteunde besturingssystemen
Het programma is platform-onafhankelijk en volledig geschreven in de programmeertaal C ++, ontworpen om te draaien op GNU / Linux-systemen, BSD-distributies, evenals andere UNIX-achtige platforms.
Het heeft met succes getest met zowel 32-bit en 64-bit instructieset architecturen, en de laatste versie kan worden getest op de huidige versie van de Ubuntu Linux-besturingssystemen of door grijpen de nieuwste broncode van zijn officiële repository.
Wat is nieuw in deze release:
- Verbeteringen:
- Voegde een nieuw instrument 'mirvanity', die een hoge snelheid videocamera kunt gebruiken om client-to-screen latency te meten.
- Toegevoegde (build-time) ondersteuning voor desktop volledige OpenGL servers (standaard uitgeschakeld in het voordeel van GLESv2).
- introduceerde nieuwe buffer semantiek (NBS) en ingeschakeld door standaard.
- Vermeden behulp libmirserver in mir_demo_standalone_render_overlays, waardoor bringup sporen minder rommelig.
- Verwijderd TilingWindowManager van bijvoorbeeld servers.
- toegevoegd twee nieuwe mir _ * _ performance_test gereedschappen die worden uitgevoerd als onderdeel van de 'mir_performance_tests'.
- Toegevoegd pointer opsluiting aan de klant API.
- Toegevoegd nieuw platform ondersteunende software EGLStreams.
- Toegevoegd een ingang platform dat de geneste server kunnen gebruiken.
- Laat de configuratie van de application_not_responding_detector
- Handle server-side toetsenbordindeling gebruik XKBMapper.
- Verwijder de offscreen display.
- Voeg callback optie om schelpen dat de server is op het punt om te stoppen op de hoogte.
- loggen voor ANativeWindow evenementen op Android toevoegen.
- ABI Samenvatting:
- mirclient ABI onveranderd op 9
- mirserver ABI gestoten tot 41
- mircommon ABI onveranderd op 6
- mirplatform ABI gestoten tot 12
- mirprotobuf ABI onveranderd op 3
- mirplatformgraphics ABI gestoten tot 10
- mirclientplatform ABI onveranderd op 5
- mirinputplatform ABI onveranderd op 5
Wat is nieuw in versie 0.18.0:
- Graphics:
- Internal voorbereidende werkzaamheden die nodig zijn voor Vulkan, hardware gedecodeerd multimedia optimalisaties en latency verbeteringen voor geneste servers.
- de slag werk op plugin renderers. Dit zal beter voor te bereiden mir voor internet van de dingen, waar we een Vulkan / GLES stack op het apparaat niet zou kunnen hebben, en zou kunnen hebben om de CPU te gebruiken.
- Oplossingen voor grafische corruptie ten nadele van Xmir (hoekig zwarte balken)
- Diverse oplossingen voor multimonitor scenario's, evenals een betere ondersteuning voor het schalen buffers aan de de monitor haar op. passen
- Input:
- Gebruik libinput standaard. We hadden leunend op een oude versie van de Android-ingang stack. deze volledig te verwijderen in het voordeel van het gebruik van libinput.
- Bugs:
- Een heel lange lijst van bug correctie. Sommige van deze waren niet in het wild 'maar bestond in de loop van 0,18 ontwikkeling.
Wat is nieuw in versie 0.17.0:
- ABI Samenvatting: Alleen servers en grafische drivers moeten de wederopbouw;
- Mirclient ABI onveranderd op 9
- Mirserver ABI gestoten tot 35
- Mircommon ABI onveranderd op 5
- Mirplatform ABI gestoten tot 11
- Mirprotobuf ABI verhoogd naar 3
- Mirplatformgraphics ABI verhoogd naar 6
- Mirclientplatform ABI onveranderd op 3
- Verbeteringen:
- Breng libmircookie, een eenvoudig mechanisme voor een groep van samenwerkende processen om uit te delen en te controleren moeilijk te smeden timestamps aan onbetrouwbare 3 partijen.
- Meer refactorings andere renderers ondersteunen dan GL.
- Voeg MirBlob aan de klant API -. Een instrument voor het serialiseren en deserialize gegevens
- De invoering van een libinput gebaseerd ingang platform, nog niet standaard gebruikt.
- Zorg voor een mechanisme voor de shell om gebeurtenissen te sturen op het oppervlak van de bouw.
- Zorg mir :: shell :: DisplayConfigurationController waardoor schelpen om de weergave configuratie correct te veranderen, melden cliënten zo nodig.
- Nieuwe DSO versiebeheer gids.
- Stuur gebeurtenissen met betrekking tot de productie van een oppervlak is op dit moment (dpi, form factor, schaal) aan klanten.
- Bug fixes:
- [verbetering] XMir documentatie moet in zijn eigen onderafdeling wonen (LP: # 1200114)
- Geneste servers nodig cursor ondersteuning (LP: # 1289072)
- Mir cursor ontbreekt / onzichtbaar totdat de klant onderscheidt het meerdere malen (LP: # 1308133)
- [regressie] Fullscreen software oppervlakken (zoals Xmir -SW) kan de Mir server crashen (LP: # 1493721)
- [usc] Mir opgeeft en wordt afgesloten als gevolg van de invoer met multimonitor qtmir (std :: uitzondering :: wat: Failure verzenden ingang event) (LP: # 1496069)
- Mouse cursor verdwijnt bij het binnenkomen van de oppervlakte van een geneste client (LP: # 1496849)
- [android] ingang wordt niet verzonden wanneer het bevestigen van een externe monitor (LP: # 1498045)
- [android] ingang coördinaten zijn onjuist geschaald wanneer er een externe monitor is aangesloten (LP: # 1498540)
- [android] std :: uitzondering :: wat: fout tijdens HWC set () als loskoppelen externe monitor (LP: # 1498550)
- tests niet compileren zonder voorgecompileerde headers (LP: # 1498829)
- [android] std :: uitzondering :: wat: Kan fd controleren: Operation niet toegestaan bij het loskoppelen van het externe beeldscherm in een geneste configuratie (LP: # 1499042)
- Mir bouwt plotseling niet meer sinds 'mesa (11.0.
0-1ubuntu1) sluwe ': /usr/include/EGL/eglplatform.h:100:35: fatale fout: android / native_window.h: Geen dergelijke dossier of folder (LP: # 1499134)
- [android] diverse crashes bij het loskoppelen van de externe weergave op een geneste configuratie (LP: # 1501927)
- Cursor zichtbaar door zelf wanneer een externe monitor is aangesloten (LP: # 1502200)
- mesa FTBFS als gevolg van ontbrekende nodig mirclient (LP: # 1503450)
Wat is nieuw in versie 0.13.3:
- MirEvent opschonen
- Wordt vervolgd op buffer semantische veranderingen (die zullen helpen genest bypass)
- & quot; Toepassing reageert niet & quot; voorgestelde tak
- Mir-on-X voorgesteld tak
- verder gewerkt aan het herwerken van QtMir aan de WM-interface te gebruiken in Mir
- Wordt vervolgd coördinatie met de upstream op libinput veranderingen die we voorgesteld
- Platform api met afgekeurde Mir code verwijderd proces van de landing
- de slag Een python-gebaseerde perf toetsingskader uitvoering
- de slag evalueren Vulkan / WSI API
- Fixed fd lekken in sommige tests
- Double-buffering support
Wat is nieuw in versie 0.11.0:
- Packaging wijzigingen:
- Als gevolg van wijzigingen in de driver Mir model de cliënt platforms zijn niet langer versiebeheer door soname. Thusly libmirplatform5driver- (mesa | android) wordt vervangen door mir-client-platform- (mesa-android). Een nieuw pakket mir-client-platform-mesa-dev wordt geïntroduceerd met headers eerder in mirplatform-dev.
- Verbeteringen:
- Veel meer grote sanitair in de Android-code, op de weg naar het ondersteunen van externe beeldschermen.
- ondersteuning toevoegen voor clang 3.6.
- Major redesign van de server van de klassen in mir :: shell, scène en vrienden (nog lopende).
- Toegevoegd client-API voor het maken van dialogen en tooltips.
- Toegevoegd nieuw oppervlakte staten:. Mir_surface_state_hidden en mir_surface_state_horizmaximized
- Prestaties:. Gebruik zo efficiënt fragment shading indien mogelijk
- Prestaties:. (Desktop) Composite met behulp van dubbele buffering in plaats van triple zichtbaar lag te verminderen
- mir_proving_server: Kan nu vensters vanaf elke rand of hoek van het formaat van het gebruik van de bestaande Alt + middlebuttondrag .
- mir_proving_server: Toegevoegd een aantal demo custom shaders (negatieve en een hoog contrast modes: Super + N / C) .
- mir_proving_server:. Kan nu bijna klanten beleefd via Alt + F4
- Toegevoegde MirPointerInputEvent (een deel van de nieuwe input API, de oude MirMotionEvent is nog steeds ook ondersteund voor nu).
- ABI Samenvatting: Servers moeten herbouwen, maar klanten niet; . Mirclient ABI onveranderd op 8. Mircommon ABI onveranderd op 3. Mirplatform ABI verhoogd naar 6. Mirserver ABI gestoten tot 29
- Bug fixes:
- [regressie] mir_demo_server onmiddellijk afgesloten met boost bad_any_cast uitzondering (LP: # 1414630)
- moeten weg naar positie menu's en tooltips (relatieve positionering naar ouder) (LP: # 1324101)
- GLibMainLoopTest mislukking gezien in CI (LP: # 1413748)
- Clang bouwt falen in CI (LP: # 1416317)
- segfault in mir :: zetter :: GLProgramFamily :: Shader :: init () (LP: # 1416482)
- GLRenderer: De standaard fragment shader is sub-optimaal is voor alpha = 1.
0 (LP: # 1350674)
- mesa :: DisplayBuffer :: post_update is triple gebufferd - meer laggy dan het moet zijn (LP: # 1350725)
- Kan geen verbinding maken met geneste server wanneer gestart vanuit een differen vt (LP: # 1379266)
- [testfail] AsioMainLoopAlarmTest faalt in CI (LP: # 1392256)
- Compositor rapport inconsistent meldt omlijsting tijdens bypass, en geef de tijd op een andere manier (LP: # 1408906)
- [regressie] mir_demo_client_fingerpaint schildert niet om het even wat meer (met de muis) (LP: # 1413139)
- Hardware cursor is altijd iets voor de samengesteld afbeelding (LP: # 1274408)
- de integratie tests uitvoeren van (te veel) DisplayServer log berichten (LP: # 1408231)
- [regressie] deploy-and-test.sh niet meer werkt (tenzij je umockdev geïnstalleerd al) (LP: # 1413479)
- Kleur Inverse tentoongesteld. Toggle Negatief beeld (LP: # 1400580)
- mir-ubuntu-levendig-armhf-ci niet consequent (LP: # 1407863)
- Double-gebufferde oppervlakken kunnen achterblijven of bevriezen als event driven en niet constant hertekenen (LP: # 1395581)
- Pointer beweging en kruising evenementen ontbreken (LP: # 1417650)
Wat is nieuw in versie 0.8:
- Ondersteuning voor touchspots om visueel te tonen aanraking locaties op het scherm, zij het ten koste van de prestaties.
- Mir klanten kunnen nu bloot prestatie-informatie, zoals frame rates en renderen keer via het instellen van de variabele MIR_CLIENT_PERF_REPORT = log milieu aan de prestatie-informatie naar de standaard uitvoer te dumpen.
- Minder gevoeligheid voor ABI pauzes door het verbergen van headers worden blootgesteld die ongebruikt zijn door externe projecten, enz. Er is ook meer scripts nu ABI breuk detecteren.
- Meer verbeteringen aan responsiviteit te raken -. Inclusief minder vertraging en soepeler scrollen
- Doe-het-overlays worden nu standaard ingeschakeld.
- Een groot aantal bug-fixes.
Wat is nieuw in versie 0.1.2:
- graphics: android. Verbeteren interface voor MGA :: DisplayDevice dus het is alleen maar bezig met de rendering en posten
- oppervlakken: hernoemen & quot; oppervlakken & quot; component & quot; scene & quot;.
- oppervlakken, shell: migreren Session datamodel van shell aan oppervlakken .
- graphics: change fill_ipc_package () om echte pointers gebruiken .
- mir_client_library.h: Fix typo & quot; te doen en het vergrendelen van & quot; moet zijn & quot; doe elke vergrendeling & quot;.
- API opsommingen schoonmaakbeurt: Verwijder enigszins misleidend * _enum_max_ waarden, en ze te vervangen door meer accurate meervoudsvormen .
- test_android_communication_package:. Verwacht niet geopend FD te zijn & gt; 0, kunnen we gesloten stdin waardoor dit een geldige waarde (LP: # 1247718)
- Update-docs over het uitvoeren van Mir op het bureaublad om nieuwe pakket ubuntu-desktop-mir. zwijgen
- offscreen: Voeg een scherm dat zijn output maakt om offscreen buffers
- graphics: android: fix regressie voor hwc1.0 apparaten geïntroduceerd in r1228 (LP: # 1252433) .
- OffscreenPlatform levert de diensten die de offscreen-display nodig heeft van het Platform.
- graphics: android. Consolidatie van de GLContexts klassen in gebruik
- Fix geïnitialiseerde variabele waardoor willekeurige drm_auth_magic-test mislukkingen. (LP: # 1252144).
- Voeg een fullyish functionele Udev wrapper. Deze zit momenteel in graphics / GBM, maar zal worden verplaatst naar het hoogste niveau als invoerapparaat detectie migreert.
- resizen steun aan bijvoorbeeld code toevoegen; demo-shell en klanten.
- eglapp: Verduidelijk boodschappen over pixel formaten (LP: # 1168304).
- Voegt ondersteuning aan de MirMotionEvent onder pointer_coordinates genoemd tool_type. Hierdoor kunnen klanten om te vertellen wat voor soort instrument wordt gebruikt, van muis / vinger / etc. (LP: # 1252498)
- client, frontend: Meld de echte beschikbare oppervlakte pixel formaten aan klanten. (LP: # 1240833)
- graphics: android: 1) wijziging hwc1.1 om gebruik te maken van de sync hekken tijdens de zetter's gl renderloop maken. Merk op dat we niet langer wachten tot het te maken te voltooien, passeren we deze verantwoordelijkheid voor de bestuurder en de kernel. 2) ondersteuning Nexus 10. (LP: # 1252173) (LP: # 1203268)
- shell: niet SurfacesContainer publiceren - het kan private om de schaal te zijn .
- GBM. Do not mess up van de VT-modus op setup mislukking Alleen de vorige VT-modus te herstellen tijdens het afsluiten als het VT_AUTO was
- Een crash te wijten aan een mislukte eglMakeCurrent () bellen als in geneste modus.
- shell: eenheid-mir maakt gebruik van shell :: FocusSetter - maak de header publiek opnieuw
- Voeg resize steun aan opdrachtgever oppervlakken (mir :: client :: MirSurface).
- graphics: android: support 'oude aka 2012' nexus 7 HWC (nvidia Tegra3 SoC) beter. (LP: # 1231917)
- Voeg formaat ondersteunen * ClientBuffer klassen. Nu krijg altijd de afmetingen van de laatste buffer pakket.
- android: driver ondersteuning haken voor de Mali T604 (aanwezig in Nexus 10)
- breedte en hoogte toe aan het protocol Buffer berichten, ter voorbereiding op resizable oppervlakken.
- oppervlakken, shell, logging, tests: niet headers dat particuliere aan oppervlakken kan publiceren. oppervlakken / basic_surface.h, oppervlakken / surface_controller.h en shell / surface_builder.h
- voorbeelden: Herstel GL framebuffer bindend wanneer het vernietigen van de renderdoel
- voorbeelden, vlakken, shell: verwijder render_surfaces afhankelijkheid van BasicSurface
- meetkunde: verwijder implementatie van streaming ondernemers uit headers (LP: # 1247820)
- Elimineer de orderregistratie nadruk volgorde, het vouwen van de functionaliteit in de sessie container.
- Zorg ervoor dat de sessie mediator releases buffer middelen verworven voordat u een nieuwe buffer te verwerven voor rekening van de opdrachtgever.Dit lost prestaties regressie (LP: # 1249210).
- Een aantal saneringen te test_client_input.cpp.
- Factor uit een bos van & quot; ClientConfigCommon & quot;.
- Kleine schoonmaak sessie container test om inkapseling te verhogen.
- shell, vlakken: Een andere stap in & quot; vaststelling van & quot; de oppervlakken hiërarchieën -. alleen interfaces publiceren en zetten het datamodel in oppervlakken
- graphics: android. HWC1.1 gebruik EGL om nadere informatie over de framebuffer pixelformaat krijgen
- Fix FTBS behulp use_debflags = ON (gebouw voor android-armhf). (LP: # 1248014)
- Voeg een client-ingang receiver rapport.
- doc: doxygen 1.8.4 klaagt over een verouderd config dus liep & quot; doxygen u Doxyfile.in & quot; .
- Implementeren resize () voor de server-side Surface lessen.
- android: opruimen MGA :: DisplayBuffer en MGA :: DisplayBufferFactory
- resize () steun aan BufferStream, toevoegen als voorbereiding op resizable oppervlakken.
- Samenvoegen metadata veranderingen ten opzichte van de onlangs gereconstrueerde lp: mir
- testen: ontdubbelen mg :: GraphicBufferAllocator stubs .
- voorbeelden: Verwijder onechte gebruik van mir / shell / surface.h.
- frontend: verwijder ClientTrackingSurface uit de Surface klassehiërarchie
- Bumping ABI op de server te libmirserver11.
- Geen melding & quot; renderable & quot ;. Dat interface is niet bestaat al geruime tijd.
- android-ingang. Wijs meer unieke touch ids
Wat is nieuw in versie 0.1.1:
- Nieuwe unit tests, diverse oplossingen om te voorkomen dat het publiceren van interne headers, ondersteuning voor het opgeven van de Mir genest naam van de server, hetzij via een --name = argument of de MIR_SERVER_NAME omgevingsvariabele, refactoring van de Mir Android scherm klassen, en een eerste stap in de richting van het verstrekken van oppervlakte formaat ondersteunen.
Reacties niet gevonden