Engenheiros da Microsoft ajudam a melhorar código do driver gráfico Mesa de código aberto

A atualização do driver d3d12 gallium reestrutura o DPB, otimizando o uso de memória e aprimorando a eficiência de codecs como H264 e HEVC, resultando em desempenho superior e novos recursos.

Logo do Mesa drivers

Uma recente atualização no driver d3d12 gallium trouxe uma reestruturação significativa no gerenciamento do Direct DPB (Decoded Picture Buffer), resultando em melhorias expressivas em termos de economia de memória e desempenho. Este avanço é crucial para o processamento de vídeo, particularmente em codecs como H264 e HEVC, onde a eficiência e a eficácia no gerenciamento de recursos são fundamentais para o bom funcionamento do sistema.

Detalhes das mudanças implementadas

Otimização de memória no DPB

O principal benefício dessa reestruturação é a otimização do uso de memória. O driver d3d12 agora evita alocações redundantes de buffers, confiando inteiramente nas alocações gerenciadas pelo frontend. Anteriormente, tanto o aplicativo quanto o driver faziam alocações de DPB, levando a um uso ineficiente da memória. Com essa mudança, o sistema passa a ser mais leve e ágil, liberando recursos importantes para outras tarefas.

Implementação de novos recursos

Além da economia de memória, a nova estrutura do DPB traz recursos adicionais, como suporte para frames de referência de longo prazo. Essa funcionalidade é especialmente útil para codecs que precisam manter múltiplos frames em memória para referência, algo comum em fluxos de trabalho de codificação e decodificação complexos.

Integração aprimorada com H264 e HEVC

Uso direto dos parâmetros de codificação

No que diz respeito aos codecs H264 e HEVC, a atualização permite que o driver d3d12 utilize diretamente os parâmetros fornecidos pelo frontend, eliminando a necessidade de rastreamento interno. Parâmetros críticos como L0, L1 e as configurações do DPB são agora manipulados diretamente pelo frontend, resultando em um processo mais eficiente e menos propenso a erros.

Eliminação do rastreamento de texturas DPB

O rastreamento de texturas DPB, anteriormente realizado internamente pelo driver, foi removido. Agora, o driver depende exclusivamente das alocações realizadas pelo frontend, o que simplifica o processo de gerenciamento e reduz possíveis conflitos e sobrecargas.

Melhorias adicionais e correções de bugs

Suporte aprimorado para feedback de sincronização

Uma adição importante foi o suporte para fences de feedback, que foi reintroduzido após uma remoção anterior devido a refatorações. Essa funcionalidade permite que o driver gerencie de maneira mais eficaz os parâmetros de timeout durante operações de sincronização de superfícies e buffers, especialmente no contexto de VaSyncSurface e VaSyncBuffer.

Correções críticas no feedback do codificador

Além das melhorias estruturais, a atualização aborda correções críticas relacionadas ao feedback do codificador, garantindo que o processo de codificação seja mais confiável e preciso, evitando problemas que poderiam comprometer a qualidade final do vídeo.

Considerações finais

A reestruturação do DPB no driver d3d12 gallium marca um avanço importante em termos de eficiência de memória e desempenho em processos de codificação de vídeo. Desenvolvedores e usuários que dependem de codecs como H264 e HEVC notarão melhorias significativas no desempenho geral de seus sistemas. Manter-se atualizado com essas melhorias é essencial para maximizar os benefícios dessas otimizações.

Descubra como essas mudanças no driver d3d12 gallium podem impactar positivamente seus projetos de vídeo e explore as atualizações disponíveis.