Lançamento do Wayland-Protocols 1.41 com suporte para gerenciamento de cores e HDR

Foi lançado o pacote wayland-protocols 1.41, que contém um conjunto de protocolos e extensões que complementam o protocolo básico Wayland e fornecem as capacidades necessárias para a construção de servidores compostos e ambientes de usuário.

Na nova versão, foi adicionado à categoria “staging” o protocolo de gerenciamento de cores, desenvolvido desde 2014 e que oferece recursos para gerenciamento de cores e suporte à faixa dinâmica ampliada de brilho (HDR, High Dynamic Range). Com a extensão adicionada, aplicativos clientes podem obter informações sobre as propriedades de saída relacionadas à representação de cores e transmitir ao servidor composto dados sobre as propriedades de representação de cores de seu próprio conteúdo. No composto, servidor essas informações podem ser usadas para gerenciamento automático de cores ao exibir conteúdo em vários dispositivos de saída, por exemplo, para converter o conteúdo em uma apresentação adequada para exibição em monitores HDR. Perfis ICC são usados para descrever os espaços de cor.

Atualmente, o conjunto de wayland-protocols inclui os seguintes protocolos estáveis, que garantem a compatibilidade retroativa:

  • "viewporter" — permite que o cliente realize ações de escala e corte das bordas da superfície no lado do servidor.
  • "presentation-time" — fornece a exibição de vídeo.
  • «xdg-shell» — interface para criar e interagir com superfícies como janelas, permitindo movê-las na tela, minimizar, maximizar, redimensionar, etc.
  • «linux-dmabuf» — fornece recursos para criar wl_buffers com base em DMA-BUF.
  • "tablet" — organização da entrada de dispositivos gráficos.

Protocolos testados na ramificação «staging»:

  • drm-lease — fornece os recursos necessários para formar uma imagem estereoscópica com buffers diferentes para o olho esquerdo e o direito ao exibir em headsets de realidade virtual.
  • «ext-session-lock» — define os meios para bloquear a sessão, por exemplo, durante a execução do protetor de tela ou a exibição de um diálogo de autenticação.
  • «single-pixel-buffer» — permite criar buffers de um único pixel, incluindo quatro valores de 32 bits RGBA.
  • «xdg-activation» — permite transferir o foco entre diferentes superfícies de primeiro nível (por exemplo, através do xdg-activation, um aplicativo pode mudar o foco para outro).
  • content-type — permite que os clientes enviem ao servidor composto informações sobre o conteúdo exibido, que podem ser usadas para otimizar o comportamento com base no conteúdo, como a definição de propriedades específicas de DRM, como 'tipo de conteúdo'. O suporte foi declarado para os seguintes tipos de conteúdo: none (sem informações sobre o tipo de dados), photo (exibição de fotos digitais, que requer mínima processamento), video (vídeo ou animação, requer uma sincronização mais precisa para evitar gagueiras) e game (execução de jogos, requer exibição com mínima latência).
  • ext-idle-notify — permite que os servidores de composição enviem notificações de inatividade do usuário aos clientes, o que pode ser utilizado para ativar modos adicionais de economia de energia após um determinado tempo de inatividade.
  • tearing-control — permite desativar a sincronização vertical (VSync) com um pulso de inibição de quadros em aplicativos em tela cheia, que é aplicado para prevenir o aparecimento de rasgos na exibição (tearing). Em aplicativos multimídia, o aparecimento de artefatos devido a rasgos é um efeito indesejado, mas em programas de jogos artefatos podem ser tolerados se a luta contra eles resultar em atrasos adicionais.
  • ext-foreign-toplevel-list — obtenção de informações sobre superfícies localizadas no nível superior (toplevel), que permitem a fixação de janelas sobre outro conteúdo, por exemplo, para conectar painéis e alternadores de janelas personalizados.
  • security-context — permite identificar clientes que utilizam isolamento sandbox. O cliente pode registrar uma nova conexão ao servidor compositor baseado em Wayland e anexar a ela um contexto de segurança, após o qual, de acordo com o contexto de segurança especificado, o gerenciador de composição limitará as capacidades disponíveis para a conexão estabelecida.
  • cursor-shape — um método alternativo de configuração da aparência do cursor, baseado na transmissão de uma série de imagens do cursor em vez de vincular a uma superfície (wl_surface).
  • «ext-transient-seat» — destinado a criar sessões temporárias independentes (seats) projetadas para uso com dispositivos de entrada virtuais. Por exemplo, ao implementar a capacidade de conexão a uma área de trabalho remota, o protocolo permite criar uma sessão separada para cada usuário com um teclado e mouse virtuais.
  • «xdg-toplevel-drag» expande o mecanismo de «drag & drop» com a capacidade de anexar janelas de topo à operação de movimentação, o que pode ser usado, por exemplo, para organizar o arraste de barras de ferramentas ou guias de navegador. O novo protocolo permite criar partes destacáveis da janela, que ao serem arrastadas para fora dessa janela tornam-se novas janelas e podem se mover sobre janelas existentes antes de serem reconectadas.
  • «xdg-dialog» permite atribuir a superfícies de topo características específicas para janelas de diálogo, por exemplo, é possível criar diálogos modais que bloqueiam a interação do usuário com o restante da interface.
  • «linux-drm-syncobj» fornece ferramentas para sincronização explícita e buffers usando objetos de sincronização DRM (Direct Rendering Manager). Supõe-se que no contexto de sincronização ao renderizar em buffer, o protocolo proposto melhorará o trabalho com drivers baseados nas APIs gráficas Vulkan e OpenGL (a implementação é baseada em manipuladores nos drivers). O novo protocolo permite garantir que a operação de renderização no buffer esteja concluída antes que o gerenciador de composição exiba esse buffer.
  • alpha-modifier, permitindo que os clientes alterem o nível de transparência da superfície e realizem operações de transparência para o lado do servidor de composição, que por sua vez pode redirecionar essas operações KMS.
  • xdg-toplevel-icon — associação de um ícone à janela de topo.
  • ext-image-capture-source e ext-image-copy-capture — organização da captura de conteúdo exibido na tela.
  • xdg-system-bell — permite a apresentação de um sinal de sistema, que pode ser utilizado, por exemplo, como um aviso em emuladores de terminal. A forma de apresentação do sinal é determinada pelo gerenciador de composição, podendo ser não apenas um som, mas também um feedback visual.
  • fifo — implementa um mecanismo FIFO (primeiro a entrar, primeiro a sair) para o processamento da fila de atualização do conteúdo da superfície exibida. Do ponto de vista prático, o protocolo permite utilizar a espera pela conclusão da varredura vertical (vblank) ao invés de chamadas de retorno sempre que um novo quadro estiver pronto para ser exibido, resolvendo assim o problema de alta carga na GPU ao usar VSync.
  • commit-timing — permite vincular uma restrição de tempo ao conteúdo da superfície (o servidor compositor deve exibir a alteração do conteúdo o mais próximo possível do tempo especificado, mas não antes).
  • ext-data-control — permite que clientes privilegiados controlem o processamento de dados, por exemplo, para implementar gerenciadores de área de transferência.
  • ext-workspace — implementa o conceito para áreas de trabalho virtuais e oferece eventos com informações sobre o estado das áreas de trabalho, bem como recursos para ativação e desativação de áreas de trabalho. O protocolo pode ser utilizado para criar painéis e indicadores que exibem a lista de áreas de trabalho virtuais disponíveis e permitem alternar entre elas.

Protocolos em desenvolvimento na ramificação «unstable»:

  • «fullscreen-shell» — gerenciamento de operação em modo de tela cheia.
  • «input-method» — processamento de métodos de entrada.
  • «idle-inhibit» — bloqueio do início do protetor de tela.
  • «input-timestamps» — carimbos de tempo para eventos de entrada.
  • «keyboard-shortcuts-inhibit» — gerenciamento de combinações de teclas e atalhos.
  • «linux-explicit-synchronization» — mecanismo de sincronização de buffers específico para Linux atrelado à superfície.
  • «pointer-gestures» — controle a partir de telas sensíveis ao toque.
  • «pointer constraints» — restrições de ponteiro (bloqueio).
  • «primary-selection» — semelhante ao X11, fornece o funcionamento do buffer de troca primário (primary selection), cuja inserção de informação geralmente é feita pelo botão do meio do mouse.
  • «relative pointer events» — eventos de ponteiro relativos.
  • «text-input» — organização da entrada de texto.
  • «xdg-foreign» — interface de interação com superfícies de clientes «vizinhos».
  • «xdg-decoration» — renderização de decorações de janelas do lado do servidor.
  • «xdg-output» — informações adicionais sobre a saída de vídeo (usada para escalonamento fracionário).
  • «xwayland-keyboard-grab» — captura de entrada em aplicativos XWayland.

Todos os protocolos passam por fases de desenvolvimento, teste e estabilização. Após a conclusão da fase de desenvolvimento (categoria 'unstable'), o protocolo é movido para a ramificação 'staging' e oficialmente incluído no conjunto wayland-protocols, e após a finalização dos testes, é transferido para a categoria estável. Protocolos da categoria 'staging' já podem ser utilizados em servidores compostos e clientes onde a funcionalidade correspondente é necessária. Ao contrário da categoria 'unstable', na 'staging' são proibidas alterações que quebrem a compatibilidade, mas caso surjam problemas e falhas durante os testes, a substituição por uma nova versão significativa do protocolo ou por outra extensão do Wayland não é descartada.

Para acelerar a entrega dos protocolos aos desenvolvedores e estimular a implementação precoce dos protocolos em projetos existentes, a partir da versão anterior foi adicionada uma fase 'experimental', na qual são permitidas alterações que quebrem a compatibilidade e a adição de protocolos 'brutos', que podem ser progressivamente refinados. Se a inclusão de um protocolo na fase 'staging' requer a formação de uma equipe de suporte e a obtenção de um certo número de confirmações (ACK) dos revisores, a inclusão na 'experimental' apenas necessita da ausência de objeções (NACK) durante um período de revisão de duas semanas.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster