Mir jest open source i technologie serwer darmo wyświetlacz, który został zaprojektowany od podstaw, aby zapewnić skuteczne wsparcie dla grafiki współpracowników procesorów w systemach GNU / Linux. Jest rozwijany przez Canonical dla świata & rsquo; s. najpopularniejszy darmowy system operacyjny Ubuntu
implementacje klienckie i serwerowe
Mir jest rozprowadzany zarówno jako klient (libmirclient) i serwera (libmirserver). Został on zaprojektowany jako zamiennik drop-in dla X Window System (X.Org) na Ubuntu i jego pochodnych. Jest również kompatybilny ze sterownikami graficznymi Android.
Produkty Mir i XMir będą rozprowadzane domyślnie w nadchodzących wersjach systemu operacyjnego Ubuntu Linux opracowanej przez Canonical. Jest to również domyślny serwer używany na wyświetlaczu aktualnej stabilnej wersji mobilnego systemu operacyjnego Ubuntu Touch do zasilania smartfony i tablety.
Co & rsquo; s wliczone
Mir składa się z kilku elementów, które są niezbędne dla każdego nowoczesnego serwera wyświetlania, takich jak kompozytor, kierownik wejściowego, Output Manager, menedżer aplikacji, a także między aplikacjami funkcjonalność wymiany danych.
Oprogramowanie jest w jakiś sposób identyczny z funkcjonalnością i silnie inspirowana szeroko stosowany serwer X.Org wyświetlacza, który jest obecnie realizowany w 99,9% wszystkich dystrybucjach GNU / Linux, a także serwer wyświetlania Wayland nowiutkim.
Został on zaprojektowany do obsługi wielu istniejących kompozytorów sprzętowych, przeznaczonych do EGL / GL (ES), a także skorzystać z istniejących sterowników, które wdrażają Android modelu sterownika.
Zgodnie z systemami operacyjnymi kaptur i obsługiwanych
Program jest niezależny od platformy iw całości napisany w języku programowania C ++, przeznaczony do pracy w systemach GNU / Linux, BSD dystrybucji, a także na innych platformach uniksowych.
To zostało z powodzeniem przetestowane zarówno 32-bitowych i 64-bitowy zestaw instrukcji architektur, a najnowsza wersja może być testowany na bieżącym wydaniu Ubuntu Linux systemów operacyjnych lub chwytając najnowszy kod źródłowy ze swojego oficjalnego repozytorium.
Co nowego w tym wydaniu:
- Ulepszenia:
- Dodano nowe narzędzie 'mirvanity', które mogą korzystać z kamery wideo wysokiej prędkości do pomiaru klient-ekranie latencję.
- Dodane (build-time) wsparcie dla stacjonarnych pełne serwery OpenGL (domyślnie wyłączone na rzecz GLESv2).
- Wprowadzono nowe semantyka buforowe (NBS) i pozwoliło domyślnie.
- unikać stosując libmirserver w mir_demo_standalone_render_overlays, co przywracenie ślady mniej zaśmiecone.
- Usunięto TilingWindowManager z przykładowych serwerów.
- Dodano dwa nowe _ * _ performance_test narzędzi mir, które są uruchamiane w ramach "mir_performance_tests".
- Dodano wskaźnik zamknięcia API klienta.
- Dodano nowy platforma obsługująca EGLStreams oprogramowania.
- Dodano platformę wejściową, że serwer może używać zagnieżdżonych.
- Zezwalaj na konfigurację application_not_responding_detector
- Uchwyt po stronie serwera keymapping użyciu XKBMapper.
- Usuń poza ekranem wyświetlacza.
- Dodaj opcję oddzwonienia powiadomić muszle, że serwer ma się zatrzymać.
- Dodaj rejestrowanie zdarzeń ANativeWindow na Androida.
- podsumowanie ABI:
- mirclient ABI niezmienionym poziomie 9
- mirserver ABI wpadł do 41
- mircommon ABI niezmienionym poziomie 6
- mirplatform ABI wpadł do 12
- mirprotobuf ABI niezmienionym poziomie 3
- mirplatformgraphics ABI wpadł do 10
- mirclientplatform ABI niezmienionym poziomie 5
- mirinputplatform ABI niezmienionym poziomie 5
Co nowego w wersji 0.18.0:
- Grafika:
- Wewnętrzne prace przygotowawcze niezbędne do Vulkan, wyroby metalowe dekodowane optymalizacje multimedialnych i opóźnienia ulepszeń dla serwerów zagnieżdżonych.
- Rozpoczęcie prac nad plugin renderujących. Pozwoli to lepiej przygotować mir dla Internetu przedmiotów, których nie może mieć stos Vulkan / GLES na urządzeniu, a może użyć procesora.
- Poprawki do korupcji graficznej wpływające Xmir (bloki czarne słupki)
- Różne poprawki dla scenariuszy Multimonitor, a także lepsze wsparcie dla skalowania bufory odpowiednio do monitora jej na.
- Wejście:
- Użyj libinput domyślnie. Byliśmy oparty na starej wersji Androida wejściowego stosie. Całkowicie usunąć tę popiera wykorzystanie libinput.
- Bugs:
- Dość długa lista korekcji błędów. Niektóre z nich nigdy nie były "na dziko", ale istniał w trakcie 0,18 rozwoju.
Co nowego w wersji 0.17.0:
- podsumowanie ABI: Tylko serwery i grafika sterowniki wymagają odbudowy;
- Mirclient ABI niezmienionym poziomie 9
- Mirserver ABI wpadł do 35
- Mircommon ABI niezmienionym poziomie 5
- Mirplatform ABI wpadł do 11
- Mirprotobuf ABI wpadł do 3
- Mirplatformgraphics ABI wpadł do 6
- Mirclientplatform ABI niezmienionym poziomie 3
- Ulepszenia:
- Przedstaw libmircookie, prosty mechanizm do grupy procesów współpracujących rozdawać i zweryfikować trudne do podrobienia sygnatury czasowe do niezaufanych 3rd stron.
- Więcej refactorings wspierać renderujące innych niż GL.
- Dodaj MirBlob API klienta. - Narzędzie do szeregowania i deserializacji danych
- Przedstaw platformę wejściową libinput oparte, nie jest jeszcze używany domyślnie.
- zapewnienie mechanizmu powłoki do wysyłania zdarzeń na budowie powierzchni.
- mir :: skorupę :: DisplayConfigurationController pozwalając muszle poprawnie zmienić konfigurację wyświetlania, informowanie klientów w stosownych przypadkach.
- Nowy DSO wersjami przewodnika.
- Wyślij wydarzenia związane z wyjściem powierzchnia jest obecnie (DPI, współczynnik formy, skali) dla klientów.
- Poprawki błędów:
- [rozszerzenie] XMir specyficzna dokumentacja powinna żyć w osobnej podsekcji (LP: # 1200114)
- Serwery zagnieżdżone potrzebują pomocy kursora (LP: # 1289072)
- Mir kursor znajduje brakuje / niewidoczne dopóki klient ustawia go wielokrotnie (LP: # 1308133)
- [regresji] Pełny ekran powierzchnie oprogramowania (jak Xmir -SW) może ulec awarii serwera Mir (LP: # 1493721)
- [USC] Mir daje się i wyłącza się z powodu wejścia z qtmir Multimonitor (std :: exception :: co: Błąd wysyłania zdarzeń wejściowych) (LP: # 1496069)
- Kursor myszy znika po wejściu do powierzchni zagnieżdżonego klienta (LP: # 1496849)
- [Android] Wejście nie jest wywoływane podczas podłączania zewnętrznego monitora (LP: # 1498045)
- [Android] Współrzędne wejściowe są skalowane niepoprawnie, gdy podłączony jest zewnętrzny monitor (LP: # 1498540)
- [Android] std :: :: co Wyjątek: błąd podczas zbioru HWC () po odłączeniu monitora zewnętrznego (LP: # 1498550)
- testy nie skompilować bez prekompilowanymi nagłówków (LP: # 1498829)
- [Android] std :: :: co wyjątku: Nie można monitorować fd: Operacja niedozwolona gdy odłączenie zewnętrznego monitora w konfiguracji zagnieżdżonej (LP: # 1499042)
- Mir buduje nagle nie od 'Mesa (11.0.
0-1ubuntu1) przebiegły ': /usr/include/EGL/eglplatform.h:100:35: błąd krytyczny: android / native_window.h: Nie ma takiego pliku lub katalogu (LP: # 1499134)
- [Android] różne awarie Odłączając zewnętrzny ekran konfiguracji zagnieżdżonej (LP: # 1501927)
- Kursor staje się widoczny przez siebie, gdy podłączony jest zewnętrzny monitor (LP: # 1502200)
- mesa ftbfs powodu braku Wymaga się mirclient (LP: # 1503450)
Co nowego w wersji 0.13.3:
- MirEvent porządki
- Ciąg dalszy na buforowych zmian semantycznych (które pomogą zagnieżdżony bypass)
- & quot; Aplikacja nie odpowiada & quot; Oddział zaproponował
- Mir-on-X Oddział zaproponował
- Kontynuacja prac nad przeróbką QtMir używać interfejsu WM w Mir
- Kontynuacja koordynacji z upstream o zmianach libinput zaproponowaliśmy
- api Platforma z nieaktualnych kod Mir usuwa się w trakcie lądowania
- Rozpoczęcie implementacja Pythona perf ramy testu opartego
- Rozpoczęcie oceny Vulkan / WSI API
- Poprawiono przecieki fd w niektórych testach
- Wsparcie podwójne buforowanie
Co nowego w wersji 0.11.0:
- Zmiany Opakowanie:
- W związku ze zmianami w modelu sterownika Mir platformy klienckie nie są już wersjonowanym przez soname. Thusly libmirplatform5driver- (mesa | Android) został zastąpiony przez mir-client-mesa-od platformy (Android). Nowy pakiet mir-client-platformowa-mesa-dev jest wprowadzany zawierający nagłówki poprzednio w mirplatform-dev.
- Ulepszenia:
- Dużo bardziej poważnym hydraulika w kodzie Androida, na drodze do wspierania zewnętrznych wyświetlaczy.
- Dodaj wsparcie dla brzękiem 3.6.
- Major przeprojektowanie klas serwerów w mir :: shell, scena i przyjaciele (wciąż w toku).
- Dodano Klient API do tworzenia okien dialogowych i podpowiedzi.
- Dodano nowe stany powierzchniowe. Mir_surface_state_hidden i mir_surface_state_horizmaximized
- Wydajność:. Użyj optymalnie efektywne cieniowania fragmentów, jeśli to możliwe
- Wydajność:. (Stacjonarny) Composite stosując podwójne buforowanie zamiast potrójnego celu zmniejszenia widocznego opóźnienia
- mir_proving_server: Można teraz zmieniać rozmiar okna z dowolnej krawędzi lub narożnika za pomocą istniejącego Alt + middlebuttondrag .
- mir_proving_server: Dodano niektóre niestandardowe demo programów operujących (tryby ujemne i wysoki kontrast: Super + N / C) .
- mir_proving_server. Klienci mogą teraz zamknij grzecznie via Alt + F4
- Dodane MirPointerInputEvent (część nowego API wejściowego, stary MirMotionEvent jest nadal obsługiwana również do tej pory).
- podsumowanie ABI: Serwery potrzebują przebudowy, ale klienci nie; , Mirclient ABI niezmienionym poziomie 8. Mircommon ABI niezmienionym poziomie 3. Mirplatform ABI wpadł do 6. Mirserver ABI wpadł do 29
- Poprawki błędów:
- [regresji] mir_demo_server wychodzi natychmiast wyjątków doładowania bad_any_cast (LP: # 1414630)
- trzeba aż do pozycji menu i podpowiedzi (w stosunku do pozycjonowania rodzica) (LP: # 1324101)
- Awaria GLibMainLoopTest widać w CI (LP: # 1413748)
- Clang buduje nie w CI (LP: # 1416317)
- segfault w Mir :: kompozytor :: GLProgramFamily :: Shader :: init () (LP: # 1416482)
- GLRenderer: Domyślnym fragment shader jest nieoptymalne dla alfa = 1.
0 (LP: # 1350674)
- mesa :: DisplayBuffer :: post_update jest potrójna buforowane - więcej laggy niż musi być (PR: # 1350725)
- Nie można połączyć się z serwerem zagnieżdżonego kiedy zaczęło się od tarasowy VT (LP: # 1379266)
- [testfail] AsioMainLoopAlarmTest zawodzi w CI (LP: # 1392256)
- Raport Kompozytor niekonsekwentnie donosi ramy czasowe w ciągu obwodnicy, a czas renderowania inaczej (LP: # 1408906)
- [regresji] mir_demo_client_fingerpaint niczego nie w większym stopniu (z myszką) malowanie (LP: # 1413139)
- Sprzęt kursor jest zawsze nieco wyprzedza wmontował obrazu (PR: # 1274408)
- Testy integracyjne wyprowadzania (zbyt wielu) DisplayServer wiadomości (LP: # 1408231) log
- [regresji] deploy-and-test.sh nie działa dłużej (chyba że masz umockdev już zainstalowany) (LP: # 1413479)
- Kolor Odwrotny na wyświetlaczu. Włącza Obraz negatywowy (LP: # 1400580)
- mir-ubuntu-plastyczny-armhf-ci nie konsekwentnie (LP: # 1407863)
- Podwójne buforowane powierzchnie mogą lag lub zamrozić, jeśli sterowany zdarzeniami, a nie stale odświeżanie (LP: # 1395581)
- Wskaźnik ruchu i skrzyżowań wydarzenia brakuje (LP: # 1417650)
Co nowego w wersji 0.8:
- Obsługa touchspots wizualnie pokazać dotykowych miejscach na ekranie, choć kosztem wydajności.
- Mir klienci mogą teraz wystawiać informacji o wydajności jak klatek i renderować razy poprzez ustawienie zmiennej środowiskowej MIR_CLIENT_PERF_REPORT = log zrzucić informacje o wydajności na standardowe wyjście.
- Mniej wrażliwość na przerwach ABI ukrywając nagłówki przed narażeniem które zostały niewykorzystane w ramach projektów zewnętrznych, itp Jest też więcej skrypty teraz wykryć pęknięcia ABI.
- Inne ulepszenia reagowania na dotyk. - W tym mniejszym opóźnieniem i płynniejsze przewijanie
- Nakładki Komputery są teraz domyślnie włączona.
- Duża liczba poprawki błędów.
Co nowego w wersji 0.1.2:
- grafika: Android. Poprawić interfejs dla MGA :: DisplayDevice więc jej tylko dotyczy renderowania i wpis
- Powierzchnie: Zmień nazwę & quot; & quot; powierzchnie Komponent do & quot; Scena & quot;.
- powierzchnie, powłoka: Migracja danych z sesji modelu skorupy do powierzchni .
- grafika: Zmiana fill_ipc_package (), aby używać prawdziwych wskazówek .
- mir_client_library.h: Fix typo & quot; robić i blokowania & quot; powinny być & quot; robić żadnych blokujący & rdquo;.
- API oczyszczania: Usunąć nieco mylące * Wartości _enum_max_, i zastąpić je bardziej precyzyjnych form liczby mnogiej .
- test_android_communication_package. Nie oczekuj otwarty fd & gt; 0, możemy mieć zamknięte stdin czyniąc to poprawną wartość (LP: # 1247718)
- docs Informacje o bieganiu Mir na pulpicie, aby wspomnieć o nowy pakiet ubuntu-desktop-Mir.
- poza ekranem: Dodaj wyświetlacz, który czyni jego wyjście poza ekranem bufory
- grafika: Android: naprawić regresji dla urządzeń hwc1.0 wprowadzonych w r1228 (LP: # 1252433) .
- OffscreenPlatform świadczy usługi że poza ekranem wyświetlacza potrzebuje z Platformy.
- grafika: Android. Skonsolidowanie klas GLContexts w użyciu
- Fix zmiennej niezainicjowanej powodując awarie testu random drm_auth_magic. (LP: # 1252144).
- Dodaj fullyish funkcjonalny udev opakowanie. To obecnie siedzi w ilustracjach / GBM, ale zostanie przeniesiony do najwyższego poziomu, gdy migruje wykrywanie urządzeń wejściowych.
- Dodaj rozmiaru wsparcia przykładowym kodem; demo-shell i klientów.
- eglapp: Wyjaśnienie komunikatów o formatach pikseli (LP: # 1168304).
- Dodaje wsparcie dla MirMotionEvent pod pointer_coordinates zwanych tool_type. Pozwoli to klientom powiedzieć, jakiego typu narzędzie jest używane z myszą / palec / etc. (LP: # 1252498)
- klienta, frontend: Zgłoś prawdziwe dostępnych formatów pikseli powierzchni klientom. (LP: # 1240833)
- grafika: android: 1) zmiana hwc1.1 wykorzystać ogrodzeń synchronizacji podczas compositor za gl renderloop. Zauważ, że nie musimy już czekać do zakończenia tynku, mijamy tę odpowiedzialność kierowcy i jądra. 2) wsparcie Nexus 10. (LP: # 1252173) (LP: # 1203268)
- shell: nie publikuje SurfacesContainer - może to być prywatne zapłacić .
- GBM. Nie mieszaj się w tryb VT w przypadku niepowodzenia konfiguracji przywrócić tylko poprzedniego trybu VT podczas zamykania czy to VT_AUTO
- Naprawa błędów na skutek nieudanej eglMakeCurrent () rozmowy w trybie zagnieżdżonego.
- shell: jedność mir używa powłoki :: FocusSetter - upubliczni nagłówka ponownie
- Dodaj wsparcie do zmiany rozmiaru powierzchni klienta (client mir :: :: MirSurface).
- grafika: Android: wsparcie "starej aka 2012" nexus 7 HWC (nvidia Tegra3 SoC) lepiej. (LP: # 1231917)
- Dodaj rozmiaru wsparcie dla klas * ClientBuffer. Teraz zawsze wymiary z najnowszym pakietem buforowej.
- Android: haki podtrzymujące sterownik dla Mali T604 (obecne w nexus 10)
- Dodaj szerokość i wysokość do komunikatów protokołu buforowa, w ramach przygotowań do zmiany rozmiaru powierzchni.
- powierzchnie, powłoki, logowanie, testy: nie publikuje nagłówków, które mogą być prywatne do powierzchni. Powierzchnie / basic_surface.h powierzchnie / surface_controller.h i powłoki / surface_builder.h
- Przykłady: Przywrócenie bufora ramki GL wiążące, gdy niszczy cel renderowania
- przykłady, powierzchni, powłoki: usunąć render_surfaces zależność od BasicSurface
- Geometria: usunąć realizację operatorów strumieniowych z nagłówkami (LP: # 1247820)
- Wyeliminowanie kolejność zgłoszeń sekwencji ostrości, składając na jego funkcjonalność do kontenera sesji.
- Upewnij się, że komunikaty sesja mediatora nabytych środków buforowych przed przystąpieniem do nabycia nowy bufor w imieniu klienta.rozwiązuje ten regresji wydajności (LP: # 1249210).
- Niektóre porządki do test_client_input.cpp.
- czynnik poza grono & quot; ClientConfigCommon & quot;.
- Małe porządki testowi kontenera sesji zwiększyć enkapsulacji.
- powłoki, powierzchnie: Kolejny krok w & quot; ustalające & quot; Powierzchnie te hierarchie. - publikuje tylko interfejsy i wprowadzenie modelu danych do powierzchni
- grafika: Android. Zastosowanie HWC1.1 EGL w celu uzyskania dalszych informacji na temat formatu bufora ramki pikseli
- Fix FTBS użyciu use_debflags = ON (budynek dla Android armhf). (LP: # 1248014)
- Dodaj raport odbiornika wejście klienta.
- doc: doxygen 1.8.4 narzeka przestarzałym config więc pobiegł & quot; doxygen u Doxyfile.in & quot; .
- Wdrożenie Resize () dla klas server-side powierzchni.
- Android: oczyścić mga :: DisplayBuffer i mga :: DisplayBufferFactory
- Dodaj resize () Wsparcie BufferStream, w ramach przygotowań do zmiany rozmiaru powierzchni.
- scalić zmiany metadanych z nowo zrekonstruowanym lp: mir
- testy: Deduplikuj odcinki mg :: GraphicBufferAllocator .
- przykłady: Usunięcie fałszywych wykorzystanie mir / Shell / surface.h.
- frontend: usunąć ClientTrackingSurface z hierarchii klas Surface
- Bumping ABI na serwerze, aby libmirserver11.
- Nie wspominając o & quot; & quot ;. Renderable Że interfejs nie istnieje już od dłuższego czasu.
- android-input. Przypisywanie bardziej unikalne identyfikatory dotykowe
wyliczenia
Co nowego w wersji 0.1.1:
- Nowe testy jednostkowe, różne poprawki, których należy unikać publikowania wewnętrznego nagłówki, wsparcie dla określania Mir zagnieżdżone nazwę serwera albo poprzez --name = argumentu lub zmiennej środowiskowej MIR_SERVER_NAME, refaktoringu klas wyświetlania Mir Androidem i pierwszy krok w kierunku zapewnienia powierzchni rozmiaru poparcia.
Komentarze nie znaleziono