Microsoft amplia aceleração de vídeo D3D12 do Mesa para oferecer suporte a efeitos baseados em mecanismo de vídeo

Confira as principais novidades deste recurso.

Desde o ano passado, a Microsoft vem trabalhando na aceleração de vídeo Direct3D 12 para Mesa para que o Windows Subsystem para Linux possa executar aplicativos comuns direcionados à API de aceleração de vídeo VA-API e, finalmente, aproveitar a aceleração de vídeo baseada em GPU por meio do Direct3D 12. Assim, a Microsoft amplia aceleração de vídeo D3D12 do Mesa para oferecer suporte a efeitos baseados em mecanismo de vídeo.

Após o vídeo inicial o suporte de codificação/decodificação para D3D12 foi incorporado ao Mesa no início deste ano, a mais recente contribuição da Microsoft agora é lidar com efeitos baseados em mecanismos de vídeo.

Mesclado ao Mesa 22.2 com o código Direct3D 12 agora está lidando com efeitos baseados em mecanismo de vídeo, como rotação, inversão, mistura alfa, corte e dimensionamento. Esses recursos são canalizados para o front-end VA-API Gallium3D e os engenheiros da Microsoft, por sua vez, testaram FFmpeg e GStreamer no Windows Subsystem for Linux (WSL2) e viram que esses efeitos de vídeo agora acabam funcionando muito bem.

Microsoft amplia aceleração de vídeo D3D12 do Mesa para oferecer suporte a efeitos baseados em mecanismo de vídeo

Os engenheiros da Microsoft continuam contribuindo com o Mesa para aprimorar o OpenGL, OpenCL, Vulkan, VA-API em cima do Direct3D para benefício principalmente do WSL.

As solicitações de mesclagem a seguir implementam as alterações necessárias para adicionar suporte a d3d12 gálio para efeitos baseados em Video Engine (sem sombreadores): rotação, inversão, mistura alfa, corte, dimensionamento e canalização até o front-end VAAPI. A mudança acontece em várias camadas:

  • pipe: Adiciona process_frame o método ao objeto de vídeo, que recebe novas estruturas especificando as regiões de entrada/saída, espelhamento de rotação e parâmetros de mistura alfa global, bem como novos limites de tubulação para estes. va: Observe que, se o driver de gálio não suportar get_video_param(..., PIPE_VIDEO_PROFILE_UNKNOWN, PIPE_VIDEO_ENTRYPOINT_UNKNOWN, PIPE_VIDEO_CAP_SUPPORTED, o comportamento será compatível com versões anteriores e a solução de sombreador existente será usada.
  • Adiciona suporte para tampas VA: VA_BLEND_GLOBAL_ALPHA, VA_MIRROR_HORIZONTAL, VA_MIRROR_VERTICAL, VA_ROTATION_90, VA_ROTATION_180, VA_ROTATION_270 através das novas tampas de tubo.
  • Integra o process_frame método recém-adicionado para NV12 em postproc.c.
  • Pequenas alterações em vlVaCreateContext, vlVaBeginPicture, vlVaEndPicture para dar suporte a pipe_video_codec baseado em VPP. (Compatível com versões anteriores se o driver não suportar as novas tampas como antes dessa alteração)

d3d12: Implementa pipe_video_codec::process_frame usando ID3D12VideoProcessor e limpando algum código.

Mais detalhes sobre este suporte de efeitos de vídeo D3D12 para Mesa 22.2 por meio desta mesclagem. Então, confira as principais novidades.

Share This Article
Follow:
Jornalista com pós graduações em Economia, Jornalismo Digital e Radiodifusão. Nas horas não muito vagas, professor, fotógrafo, apaixonado por rádio e natureza.
Sair da versão mobile