Wayland Protocols 1.30 com um novo protocolo para permitir o Screen Tearing

E foi lançado o Wayland-Protocols 1.30 com um novo protocolo para permitir o Screen Tearing. Confira as novidades dessa atualização.

Wayland-Protocols contém protocolos Wayland que adicionam funcionalidades não disponíveis no protocolo principal do Wayland.

Esses protocolos adicionam uma funcionalidade completamente nova ou estendem a funcionalidade de algum outro protocolo no núcleo do Wayland ou algum outro protocolo nos protocolos do wayland.

Um protocolo em Wayland-Protocols consiste em um diretório contendo um conjunto de arquivos XML contendo a especificação do protocolo e um arquivo README contendo o estado detalhado e uma lista de mantenedores.

Os protocolos em geral têm três fases: a fase de desenvolvimento, a fase de teste e a fase estável.

Na fase de desenvolvimento, um protocolo não faz parte oficialmente dos protocolos de wayland, mas está sendo desenvolvido ativamente, por exemplo, iterando-o em uma solicitação de mesclagem ou planejando-o em um problema.

Durante esta fase, os patches para clientes e compositores são escritos como um veículo de teste. Esses patches não devem ser mesclados em clientes e compositores, porque o protocolo ainda pode ser alterado.

Quando um protocolo atinge um estágio em que está pronto para uma adoção mais ampla e depois que os requisitos da seção 2.3 de GOVERNANÇA são atendidos, ele entra na fase de “teste”. Neste ponto, o protocolo é adicionado ao staging/directory of wayland-protocol e faz parte de uma versão. O que isso significa é que a implementação é encorajada em clientes e compositores onde a funcionalidade que especifica é desejada.

As extensões no teste não podem ter alterações incompatíveis com versões anteriores, nesse sentido, são iguais às extensões estáveis. No entanto, eles podem ser completamente substituídos por uma nova versão principal ou uma extensão de protocolo diferente todos juntos, se forem encontradas falhas de design na fase de teste.

Após um protocolo de teste ter sido suficientemente testado em estado selvagem e comprovado como adequado, seus mantenedores e a comunidade em geral podem declará-lo “estável”, o que significa que é inesperado ser substituído por uma nova versão principal.

Agora, o projeto anunciou mais uma atualização desse software, o Wayland-Protocols 1.30.

Wayland Protocols 1.30 com um novo protocolo para permitir o Screen Tearing

Wayland Protocols 1.30 com um novo protocolo para permitir o Screen Tearing
Wayland Protocols 1.30 com um novo protocolo para permitir o Screen Tearing

Nos primeiros dias de Wayland, um dos principais pontos filosóficos para essa alternativa ao servidor X.Org era que “cada quadro é perfeito” e renunciaria ao rasgo de tela entre outras impurezas de renderização.

Introduzido agora com o Wayland Protocols 1.30, porém, é um novo protocolo de preparação para permitir o rasgo de tela.

O novo protocolo de controle de rasgo permite que os clientes informem aos compositores que o conteúdo de sua superfície pode “rasgar” se necessário – mostrando uma mistura de conteúdo de superfície antigo/novo.

A intenção com este protocolo de controle de rasgo é para software sensível à latência, como jogos e programas de tablet de desenho gráfico, para rasgar, se necessário, a fim de reduzir a entrada para a latência da tela.

Os clientes podem usar o protocolo de controle de tearing para indicar que estão bem com o tearing por meio de virada de página assíncrona. O protocolo tearing_control_v1 vem sendo trabalhado desde o ano passado pelo desenvolvedor do KDE, Xaver Hugl.

A nova especificação tearing_control_v1 se resume a:

Para alguns casos de uso, como jogos ou tablets de desenho, pode fazer sentido reduzir a latência aceitando rasgos com o uso de viradas de página assíncronas. Esse global é uma interface de fábrica, permitindo que o cliente informe para qual tipo de apresentação o conteúdo de suas superfícies é adequado.

APIs gráficas como EGL ou Vulkan, que gerenciam a fila de buffer e as confirmações de um wl_surface, provavelmente usam essa extensão internamente. Se um cliente estiver usando essa API para um wl_surface, ele não deve usar essa extensão diretamente nessa superfície, para evitar gerar um erro de protocolo tearing_control_exists.

O objetivo, é claro, é conseguir nenhum rasgo de tela e, por padrão, esse protocolo não altera o comportamento do cliente ou o comportamento pretendido do compositor Wayland em relação ao rasgo de tela.

As outras mudanças mais comuns com o Wayland-Protocols 1.30 podem ser encontradas por meio de seu anúncio de lançamento.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.