Além de a Microsoft continuar trabalhando em OpenGL e OpenCL no Direct3D 12, aproveitando o Mesa para beneficiar o Windows Subsystem for Linux (WSL2) e casos de uso relacionados, os engenheiros da Microsoft também estão trabalhando na exposição da aceleração de vídeo ao software Linux apoiado pelo Direct3D 12 Aceleração de Vídeo.
Há todo um trabalho de implementação de codificação de vídeo HEVC (H.265) e aceleração de decodificação de GPU usando Direct3D 12 sendo mesclado. O driver Mesa D3D12 implementou os bits necessários ao usar o rastreador de estado VA-API Gallium3D para que seja exposto ao software Linux sob WSL2 usando essa API comum de aceleração de vídeo do Linux.
O MR a seguir implementa as alterações necessárias para implementar a codificação e decodificação HEVC no driver d3d12, além de estender algumas das estruturas de pipe comuns e o frontend va com mais recursos, como codificação de referência multi slice e multi L0/L1.
No processo, o engenheiro da Microsoft Sil Vilerino também estendeu o front-end Gallium3D VA para oferecer mais recursos, como codificação de referência multi-slice e multi L0/L1. A Microsoft testou essa aceleração de vídeo VA-API para D3D12 no Windows por meio do player de vídeo MPV para decodificação e, em seguida, usando FFmpeg para codificação e decodificação HEVC.
As alterações foram testadas usando VAAPI
mpv
para decodificação eFFMpeg
para codificação e decodificação. Para os casos de codificação, diferentes taxas de bits, modos de corte e grupos de estruturas de imagem foram usados. Para os casos de decodificação, um conjunto de fluxos de bits HEVC de conformidade foi usado e comparado com sua referência md5.
Microsoft lança codificação/decodificação de vídeo HEVC no Mesa usando VA-API para Direct3D 12
Fazer com que essa codificação/decodificação de vídeo H.265 para D3D12 funcionasse para o Mesa foi cerca de cinco mil novas linhas de código ao longo de duas dúzias de commits. Essa solicitação de mesclagem coloca todas as funcionalidades no lugar e é mesclada para a versão estável do Mesa 22.3 do próximo trimestre.