O WebKitGTK já faz uso do compartilhamento de buffer DMA-BUF para WebGL e renderização de mídia enquanto avança, eles estão mudando para usá-lo também para compartilhamento de buffer renderizado entre a web e os processos de interface do usuário. O desenvolvedor do Igalia, Carlos Garcia Campos, explicou em uma nova postagem no blog hoje:
"Já estamos usando DMABUF no WebKit para coisas diferentes, como WebGL e renderização de mídia, então pensamos que também poderíamos usá-lo para compartilhar o buffer renderizado entre os processos da web e da interface do usuário. Essa seria uma solução mais eficiente, mas também seria drasticamente reduza a quantidade de combinações a serem mantidas. O processo da web sempre usa a plataforma sem superfície, portanto, não importa se está em Wayland ou X11. Em seguida, criamos um contexto sem superfície como destino de renderização e usamos as APIs EGL e GBM para exportar o conteúdo como um buffer DMABUF. O processo de UI importa o buffer DMABUF usando EGL e GBM também, para ser passado para GTK como uma textura que é pintada na visualização da web.
Isso teoricamente reduz todas as combinações anteriores a apenas uma (observe que removemos o suporte GLX totalmente, tornando EGL um requisito para composição acelerada), mas há um problema no X11: GTK3 não suporta EGL em X11 e GTK4 padroniza para EGL, mas cai de volta ao GLX se não encontrar uma configuração EGL que corresponda perfeitamente ao visual da tela. No meu sistema, ele nunca encontra essa configuração EGL porque mesa não expõe nenhuma configuração de profundidade de 32 bits. Então, no caso do GTK3 temos que baixar manualmente o buffer para a CPU e pintar normalmente usando o Cairo, mas no caso do GTK4 + GLX, o GTK carrega o buffer novamente para ser pintado usando o GLX. Não acho que seja possível forçar o GTK a usar o EGL da API, mas pelo menos você pode usar GDK_DEBUG=gl-egl.WebKitGTK 2.41.1
O WebKitGTK 2.41.1 é a primeira versão instável deste ciclo e já inclui o suporte DMABUF que é usado por padrão. Encorajamos todos a experimentá-lo e fornecer feedback ou relatar qualquer problema. Por favor, exporte o conteúdo do webkit://gpu e anexe-o ao relatório de bug ao relatar qualquer problema relacionado a gráficos. Para verificar se o problema é uma regressão da implementação DMABUF, você pode usar WEBKIT_DISABLE_DMABUF_RENDERER=1 para usar o renderizador WPE ou X11. Esta variável de ambiente e o código WPE render/X11 serão eventualmente removidos se o DMABUF funcionar bem."
Mais detalhes sobre essa nova abordagem DMA-BUF para renderização composta acelerada com o WebKitGTK podem ser encontrados no Carlo's blog .
O WebKitGTK 2.4.1.1 chega como o novo lançamento de desenvolvimento com o uso do DMA-BUF e WebKit IPC para renderização foi lançado na quinta-feira. WebKitGTK é a porta do mecanismo de renderização WebKit usada por vários aplicativos GNOME/GTK como GNOME Web / Epiphany e outras necessidades de HTML/CSS na área de trabalho GNOME.
Até a próxima !!
Nenhum comentário:
Postar um comentário