Patches propõem suporte a 3D no HDMI para placas de vídeo AMD no Linux

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Patches propõem habilitar o recurso 3D nativo em placas Radeon no Linux!

Uma série de patches enviada à lista de discussão do Kernel Linux propõe resolver uma antiga ausência no driver de vídeo da AMD (amdgpu): a falta de suporte para saída 3D em conexões HDMI nativas. A novidade foi submetida pelo desenvolvedor independente Adrian Betschart e visa habilitar formatos clássicos do HDMI 1.4, como “frame packing”, lado a lado (side-by-side) e superior e inferior (top-and-bottom).

O que isso muda na prática

Atualmente, se você conectar um computador equipado com placa de vídeo Radeon rodando Linux a uma TV ou projetor 3D, o sistema operacional não habilita os modos tridimensionais. Isso frustra usuários que montam centros de mídia em casa (HTPCs) e utilizam softwares como Kodi ou mpv com filtros 3D para assistir a filmes.

Caso as alterações sejam aceitas, esses dispositivos passarão a receber os sinais corretamente, ativando os óculos 3D de forma automática. Para efeito de comparação, o driver de vídeo da Intel (i915) já oferece esse mesmo suporte no ecossistema Linux há cerca de dez anos.

Como a solução contorna o hardware

A implementação de Betschart adota a abordagem mais simples possível para funcionar no hardware da AMD. O código faz com que o sistema empacote as duas perspectivas (uma para cada olho) no mesmo quadro. O núcleo de exibição (display core) do driver escaneia essa imagem como se fosse um quadro 2D comum.

A única instrução técnica voltada para o 3D ocorre no “vendor infoframe” do HDMI. Esse pacote de dados é enviado ao projetor ou à TV para avisar que a imagem recebida possui um formato tridimensional. Um dos patches, inclusive, introduz o byte de dados 3D_Ext_Data na topologia superior e inferior, um requisito obrigatório para que projetores de marcas como JVC consigam engatilhar o modo 3D.

O autor testou a novidade usando uma Radeon RX 7600 (Navi 33, DCN 3.2.1) conectada a um projetor JVC DLA-RS4100. Nos testes, o sistema rodou através do LibreELEC usando a API GBM, mantendo uma resolução de 1920x1080p a 24 Hz, com profundidade de 12 bits por cor, confirmando a estabilidade da geometria para cada olho. Em atualizações recentes enviadas à lista de discussão, o conjunto de correções já chegou à sua terceira versão (v3), ajustando o comportamento do sinal na validação de modo de vídeo.

Limitações com compressão de cor

GjJKk6Pn hdmi 3d gpus amd linux 1
Patches propõem suporte a 3D no HDMI para placas de vídeo AMD no Linux 3

Apesar do avanço, há uma limitação conhecida detalhada pelo desenvolvedor. A saída 3D não funciona adequadamente se o recurso de compressão de cor da AMD (DCC, ou Delta Color Compression) estiver ativado no framebuffer.

Quando o DCC está ligado, a primeira atualização de tela não é concluída e o canal de exibição trava. Por conta disso, a fonte de vídeo precisa alocar o framebuffer 3D sem utilizar a compressão de cor. Um relatório de erro separado deverá ser aberto para investigar esse conflito específico no futuro.

Próximos passos

Os patches foram baseados no branch amd-staging-drm-next do Kernel Linux. Por se tratar de uma proposta, o código ainda passará pela revisão técnica dos mantenedores do driver amdgpu. Não existe uma confirmação imediata de quando, ou se, essa implementação será aceita na linha principal (mainline) do Kernel Linux para chegar aos usuários finais.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.