Mir é uma fonte aberta e tecnologia de servidor de exibição gratuito que foi projetado desde o início para fornecer suporte eficiente para gráficos co-processadores em sistemas GNU / Linux. É desenvolvido pela Canonical para o mundo & rsquo;. S sistema operacional livre mais popular, Ubuntu
implementações de cliente e servidor
Mir é distribuído como o cliente (libmirclient) e servidor (libmirserver). Ele foi projetado como uma substituição drop-in para o X Window System (X.Org) no Ubuntu e seus derivados. Ele também é compatível com os drivers gráficos Android.
Os produtos Mir e XMir serão distribuídas por padrão em versões futuras do sistema operacional Ubuntu Linux desenvolvido pela Canonical. É também o servidor de exibição padrão usado na versão estável atual do sistema operacional móvel do Ubuntu toque para alimentar smartphones e tablets.
O que & rsquo; s incluído
Mir é composto por vários componentes que são essenciais para qualquer servidor de exibição moderna, como um compositor, gerente de entrada, gerente de produto, gerente de aplicação, bem como inter-app funcionalidade de troca de dados.
O software é de alguma forma idêntica em funcionalidade com e fortemente inspirado pelo servidor amplamente utilizado X.Org visor, que está actualmente implementado em 99,9% de todas as distribuições GNU / Linux, bem como o servidor de exibição Wayland novo.
Ele foi projetado para suportar muitos dos compositores de hardware existentes, concebidas em direção EGL / GL (ES), e tirar proveito dos drivers existentes que implementam o modelo de driver Android.
De acordo com os sistemas operacionais de capuz e apoiados
O programa é independente de plataforma e escrito inteiramente na linguagem de programação C ++, projetado para rodar em sistemas GNU / Linux, BSD distribuições, bem como outras plataformas UNIX-like.
Foi testado com sucesso com arquiteturas de 32 bits e conjunto de instruções de 64 bits, ea versão mais recente pode ser testado na versão atual do Ubuntu Linux sistemas operacionais ou agarrando o código fonte mais recente do seu repositório oficial.
O que é novo nesta versão:
- Melhorias:
- Adicionado uma nova ferramenta 'mirvanity ", que pode usar uma câmera de vídeo de alta velocidade para medir a latência de cliente-para-tela.
- Acrescentado (build-time) suporte para servidores OpenGL desktop completo (desativado por padrão em favor da GLESv2).
- Introduzido nova semântica tampão (NBS) e habilitado por padrão.
- evitou usar libmirserver em mir_demo_standalone_render_overlays, tornando bringup traça menos desordenado.
- Removido TilingWindowManager do exemplo servidores.
- Adicionado dois novos _ * _ ferramentas performance_test mir que são executados como parte do 'mir_performance_tests'.
- Adicionado ponteiro confinamento para a API do cliente.
- Adicionada nova plataforma de apoio EGLStreams de software.
- Adicionado uma plataforma de entrada que o servidor nested pode usar.
- Permitir a configuração do application_not_responding_detector
- keymapping server-side Handle usando XKBMapper.
- Remova a tela fora da tela.
- opção callback Adicionar para notificar conchas que o servidor está prestes a parar.
- Adicione o registo para eventos ANativeWindow no Android.
- resumo ABI:
- mirclient ABI inalterada em 9
- mirserver ABI adiado para 41
- mircommon ABI inalterada em 6
- mirplatform ABI adiado para 12
- mirprotobuf ABI inalterada em 3
- mirplatformgraphics ABI adiado para 10
- mirclientplatform ABI inalterada em 5
- mirinputplatform ABI inalterada em 5
O que é novo na versão 0.18.0:
- Gráficos:
- trabalho de preparação interna necessária para Vulkan, hardware decodificado otimizações multimídia e melhorias de latência para servidores aninhadas.
- começou a trabalhar sobre prestadores de plugins. Isto irá preparar melhor mir para a Internet das coisas, onde podemos não ter uma pilha Vulkan / GLES no dispositivo, e pode ter que usar a CPU.
- Correções para a corrupção gráficos que afetam Xmir (barras pretas em blocos)
- Várias correções para cenários multimonitor, bem como um melhor suporte para escalar buffers de acordo com o monitor a sua por diante.
- Input:
- Use libinput por padrão. Nós tinha sido apoiado em uma versão antiga da pilha de entrada Android. Completamente remover esta a favor do uso libinput.
- Bugs:
- Bastante uma longa lista de correção de bug. Alguns deles nunca estiveram "em estado selvagem", mas existia no decurso de 0,18 desenvolvimento.
O que é novo na versão 0.17.0:
- resumo ABI: Somente servidores e drivers gráficos precisam de reconstrução;
- Mirclient ABI inalterada em 9
- Mirserver ABI adiado para 35
- Mircommon ABI inalterada em 5
- Mirplatform ABI adiado para 11
- Mirprotobuf ABI adiado para 3
- Mirplatformgraphics ABI adiado para 6
- Mirclientplatform ABI inalterada em 3
- Melhorias:
- Apresente libmircookie, um mecanismo simples para um grupo de processos cooperando para distribuir e verificar difícil de forjar timestamps para 3 partes não confiáveis.
- Mais refatorações para apoiar outros prestadores de GL.
- Adicionar MirBlob para a API do cliente -. Uma ferramenta para serialização e desserialização de dados
- Apresente uma plataforma de entrada libinput base, ainda não utilizados por padrão.
- Fornecer um mecanismo para a shell para enviar eventos na construção da superfície.
- Fornecer mir :: :: shell DisplayConfigurationController permitindo conchas para mudar corretamente a configuração de exibição, notificar os clientes conforme o caso.
- New DSO guia versão.
- Enviar eventos relativos à saída de uma superfície está atualmente em (dpi, fator de forma, escala) para os clientes.
- Correções de bugs:
- documentação específica [melhoria] XMir deve viver em sua própria subseção (LP: # 1.200.114)
- servidores aninhadas precisam de apoio de cursor (LP: # 1.289.072)
- cursor Mir é falta / invisível até que o cliente define-lo várias vezes (LP: # 1.308.133)
- [regressão] superfícies de software em tela cheia (como Xmir -sw) pode derrubar o servidor Mir (LP: # 1.493.721)
- [USC] Mir desiste e desliga devido à entrada com qtmir multimonitor (std :: exception :: o: Falha enviar evento de entrada) (LP: # 1.496.069)
- O cursor do mouse desaparece ao entrar a área de superfície de um cliente aninhada (LP: # 1.496.849)
- [Android] entrada não é despachado quando conectar um monitor externo (LP: # 1.498.045)
- [Android] coordenadas de entrada são dimensionadas de forma incorrecta quando um monitor externo está conectado (LP: # 1.498.540)
- [Android] std :: exception :: O que: erro durante set HWC () quando desligar o monitor externo (LP: # 1.498.550)
- testes não compilar sem cabeçalhos pré-compilados (LP: # 1.498.829)
- [Android] std :: exception :: o: Falha ao monitorar fd: Operação não permitida quando desligar monitor externo em uma configuração aninhada (LP: # 1.499.042)
- Mir repente não constrói desde 'mesa (11.0.
0-1ubuntu1) ardiloso ': /usr/include/EGL/eglplatform.h:100:35: erro fatal: android / native_window.h: Nenhum tal lima ou diretório (LP: # 1.499.134)
- [Android] várias falhas quando desligar monitor externo em uma configuração aninhada (LP: # 1.501.927)
- Cursor se torna visível por si só quando um monitor externo está conectado (LP: # 1.502.200)
- mesa FTBFS devido à falta Requer no mirclient (LP: # 1.503.450)
O que é novo na versão 0.13.3:
- MirEvent limpeza
- Continua na tampão mudanças semânticas (que vai ajudar desvio aninhados)
- & quot; A aplicação não responde & quot; núcleo proposto
- Mir-on-X núcleo proposto
- trabalho Continua na retrabalhar QtMir usar a interface WM em Mir
- coordenação contínua com a montante sobre as mudanças libinput propusemos
- api Platform com código de Mir preterido removido no processo de desembarque
- Começou a implementação de estrutura de teste perf baseado em Python
- Começou a avaliar API Vulkan / WSI
- fixos vazamentos fd em alguns testes
- Suporte duplo-buffering
O que é novo na versão 0.11.0:
- mudanças de embalagem:
- Devido às mudanças no modelo de driver Mir as plataformas de cliente não são versionadas por soname. Thusly libmirplatform5driver- (mesa | android) passa a ter mir-client-de plataforma (mesa-android). Um novo pacote mir-client-plataforma de mesa-dev é introduzido contendo cabeçalhos anteriormente em mirplatform-dev.
- Melhorias:
- Muito mais importante do encanamento no código do Android, no caminho para apoiar monitores externos.
- Adicionar suporte para clang 3.6.
- grande reformulação de classes de servidores em mir :: escudo, cena e amigos (ainda em curso).
- Adicionado API cliente para a criação de diálogos e dicas de ferramentas.
- Adicionado novos estados de superfície:. Mir_surface_state_hidden e mir_surface_state_horizmaximized
- Performance:. Use sombreamento fragmento optimamente eficiente quando possível
- Performance:. (Desktop) Composição usando o buffer duplo ao invés de triplo para reduzir lag visível
- mir_proving_server: Agora pode redimensionar janelas de qualquer borda ou canto usando o Alt + existente middlebuttondrag .
- mir_proving_server: Adicionado alguns shaders personalizados Demo (modos de contraste negativo e alta: Super + N / C) .
- mir_proving_server:. Agora pode fechar clientes educadamente via Alt + F4
- Adicionado MirPointerInputEvent (parte da nova API de entrada, o velho MirMotionEvent é ainda apoiada também por agora).
- resumo ABI: Servidores precisa reconstrução, mas os clientes não; . Mirclient ABI inalterada em 8. Mircommon ABI inalterada em 3. Mirplatform ABI adiado para 6. Mirserver ABI adiado para 29
- Correções de bugs:
- [regressão] mir_demo_server sai imediatamente com exceção impulso bad_any_cast (LP: # 1.414.630)
- precisa maneira de menus de posição e dicas de ferramentas (posicionamento em relação ao pai) (LP: # 1.324.101)
- falha GLibMainLoopTest visto em CI (LP: # 1.413.748)
- Clang constrói falhar em CI (LP: # 1.416.317)
- segfault in mir :: :: compositor GLProgramFamily :: Shader :: init () (LP: # 1.416.482)
- GLRenderer: O shader de fragmento padrão é sub-óptima para alfa = 1.
0 (LP: # 1.350.674)
- mesa :: :: DisplayBuffer post_update é o triplo tamponada - mais vagaroso do que ele precisa ser (LP: # 1.350.725)
- Não é possível conectar ao servidor nested quando iniciado a partir de um vt differen (LP: # 1.379.266)
- [testfail] AsioMainLoopAlarmTest falha em CI (LP: # 1.392.256)
- relatório Compositor relata de forma inconsistente de tempo de estrutura durante a circulação, e tornar o tempo de outra forma (LP: # 1.408.906)
- [regressão] mir_demo_client_fingerpaint não pinta mais nada (com o mouse) (LP: # 1.413.139)
- cursor de hardware é sempre um pouco à frente da imagem composta (LP: # 1.274.408)
- testes de integração são saída (muitos) DisplayServer mensagens (LP: # 1.408.231) log
- [regressão] deploy-and-test.sh não funciona mais (a menos que você tem umockdev já instalado) (LP: # 1.413.479)
- Inverse Cor em exposição. Alternar imagem em negativo (LP: # 1.400.580)
- mir-ubuntu-vivas-armhf-ci falhar de forma consistente (LP: # 1.407.863)
- superfícies buffer duplo pode ficar ou congelar se o evento conduzido e não constantemente redesenhando (LP: # 1.395.581)
- movimento do ponteiro e de passagem estão faltando (LP: # 1.417.650)
eventos
O que é novo na versão 0.8:
- Suporte para touchspots visualmente mostrar o ponto do toque na tela, ainda que à custa de desempenho.
- clientes Mir agora podem expor informações de desempenho, como taxas de quadro e tornar vezes via definindo a variável MIR_CLIENT_PERF_REPORT = ambiente de log para despejar as informações de desempenho para a saída padrão.
- Menos sensibilidade à quebra ABI escondendo cabeçalhos de ser exposto que têm sido utilizada por projetos externos, etc. Há também mais scripts agora para detectar ABI ruptura.
- Mais melhorias para tocar resposta -. Incluindo menos lag e rolagem suave
- sobreposições de hardware estão agora habilitado por padrão.
- Um grande número de correções de bugs.
O que é novo na versão 0.1.2:
- gráficos: android:. Melhorar a interface para mga :: DisplayDevice pelo que a sua apenas preocupado com o processamento e postagem
- superfícies: Mudar o nome & quot; superfícies & quot; componente para & quot; cena & quot;.
- superfícies, shell: Migrar modelo de dados sessão de shell para superfícies .
- gráficos: mudança fill_ipc_package () para usar ponteiros reais .
- mir_client_library.h: Corrigir erro de digitação & quot; fazer e bloquear & quot; deve ser & quot; fazer qualquer bloqueio & quot;.
- API de limpeza: Retirar um pouco enganador * Valores _enum_max_, e substituí-los por formas plurais mais precisos .
- test_android_communication_package:. Não espere fd aberto para ser & gt; 0, podemos ter stdin fechada tornando este um valor válido (LP: # 1.247.718)
- docs atualização sobre a execução de Mir no ambiente de trabalho de mencionar novo pacote ubuntu-desktop-mir.
- fora de campo: Adicionar um display que torna a sua saída para fora da tela buffers
- gráficos: android: corrigir regressão para dispositivos hwc1.0 introduzidas no r1228 (LP: # 1.252.433) .
- OffscreenPlatform fornece os serviços que a tela fora da tela precisa da Plataforma.
- gráficos: android:. Consolidar as classes GLContexts em uso
- Corrija variável não inicializada causando falhas nos testes drm_auth_magic aleatória. (LP: # 1.252.144).
- Adicionar um invólucro Udev funcional fullyish. Este senta-se atualmente em graphics / GBM, mas será transferido para o de nível superior quando o dispositivo de entrada migra de detecção.
- Adicione o redimensionamento apoio ao exemplo de código; Demo-shell e clientes.
- eglapp: Esclareça mensagens sobre formatos de pixel (LP: # 1.168.304).
- Adiciona suporte ao MirMotionEvent sob pointer_coordinates chamados tool_type. Isso permitirá que os clientes para dizer que tipo de ferramenta está sendo utilizada, de mouse / dedo / etc. (LP: # 1.252.498)
- cliente, frontend: Reportar as reais formatos de pixel de superfície disponível para os clientes. (LP: # 1.240.833)
- gráficos: android: 1) a mudança hwc1.1 fazer uso de cercas de sincronização durante renderloop gl do compositor. Note-se que já não espera para o render para completar, passamos essa responsabilidade para o motorista eo kernel. 2) apoio Nexus 10. (LP: # 1.252.173) (LP: # 1.203.268)
- shell: não publicar SurfacesContainer - pode ser privado de desembolsar .
- gbm:. Não mexa-se o modo de VT em caso de falha de configuração Somente restaure o modo de VT anterior durante o encerramento se era VT_AUTO
- Corrigir um acidente devido a uma chamada falhou eglMakeCurrent () quando no modo aninhado.
- shell: unidade-mir usa shell :: FocusSetter - tornar público o cabeçalho novamente
- Adicionar suporte de redimensionamento para superfícies cliente (mir :: :: cliente MirSurface).
- gráficos: android: o apoio de idade aka 2012 'Nexus 7 HWC (nvidia SoC Tegra3) melhor. (LP: # 1.231.917)
- Adicionar redimensionar apoio às aulas * ClientBuffer. Agora sempre obter dimensões do mais recente pacote de buffer.
- android: ganchos motorista de apoio ao Mali T604 (presente em Nexus 10)
- Adicionar largura e altura para as mensagens do buffer de protocolo, em preparação para superfícies redimensionáveis.
- superfícies, escudo, logging, testes: não publicar cabeçalhos que podem ser privada para superfícies. superfícies / basic_surface.h, superfícies / surface_controller.h e shell / surface_builder.h
- exemplos: Restaurar GL framebuffer de ligação ao destruir o destino de processamento
- exemplos, superfícies, shell: remover a dependência render_surfaces em BasicSurface
- geometria: remova implementação de operadores de streaming de cabeçalhos (LP: # 1.247.820)
- Eliminar a sequência foco ordem de inscrição, dobrando sua funcionalidade para o recipiente sessão.
- Certifique-se os lançamentos sessão mediador adquiridas recursos tampão antes de tentar adquirir um novo tampão em nome do cliente.Isso corrige regressão de desempenho (LP: # 1.249.210).
- Algumas limpezas para test_client_input.cpp.
- Fator de fora um monte de & quot; ClientConfigCommon & quot;.
- limpeza pequeno para teste de recipiente sessão para aumentar encapsulamento.
- shell, superfícies: Outro passo em & quot; fixação & quot; as hierarquias superfícies -. só para publicar as interfaces e colocar o modelo de dados em superfícies
- gráficos: android:. Uso HWC1.1 EGL para obter mais informações sobre o formato de pixel framebuffer
- Corrija FTBS usando use_debflags = ON (edifício para android-armhf). (LP: # 1.248.014)
- Adicionar um relatório receptor de entrada do cliente.
- doc: doxygen 1.8.4 reclama de uma configuração obsoletos assim correu & quot; doxygen u Doxyfile.in & quot; .
- Implementar redimensionamento () para as classes de superfície do lado do servidor.
- android: limpar mga :: DisplayBuffer e mga :: DisplayBufferFactory
- Adicionar redimensionamento () apoio a BufferStream, em preparação para superfícies redimensionáveis.
- Merge metadados alterações do lp recentemente reconstruído: mir
- testes: Desduplique tocos mg :: GraphicBufferAllocator .
- exemplos: Retirar o uso espúrio da mir / shell / surface.h.
- frontend: remover ClientTrackingSurface da hierarquia de classes de superfície
- Bumping ABI no servidor para libmirserver11.
- Não mencione & quot; Renderable & quot ;. Essa interface não existe há algum tempo agora.
- android-entrada:. Atribuir IDs de toque mais originais
enumerações
O que é novo na versão 0.1.1:
- testes de unidade Novas, várias correções para evitar a publicação interna cabeçalhos, suporte para a especificação do Mir aninhados nome do servidor, quer através de um --name = argumento ou a variável de ambiente MIR_SERVER_NAME, refactoring das classes de exibição Mir Android, e um primeiro passo no sentido de proporcionar a superfície redimensionar apoio.
Comentários não encontrado