Skip to content

d3d12: Implement more misc video features and some fixes

Sil Vilerino requested to merge sivileri/mesa:upstream_d3d12_changes_v2 into main

What does this MR do and why?

This MR exposes several misc. D3D12 video features and knobs through the pipe interface and addresses some bugs found during their development. Some more changes are staged that will be also leveraged by a future Windows Media Foundation Transforms (MFT) frontend.

When applicable, the new pipe interfaces are plumbed to the VA frontend as well.

  • Support for optionally inserting codec headers on each key frame
  • Support for checking submitted in-flight encode operation before completion and obtaining the pipe_fence_reference for external waiting.
  • Support exporting HANDLE from pipe_fence_reference
  • Support obtaining packed codec headers out of band from encoder
  • Support reporting average QP used to encode a frame
  • Improved error reporting on encode async submission
  • Adding misc. missing codec params in pipe structures
  • Improve d3d12 video buffer and resource importing properties autodetection
  • Improve d3d12 encoder bitstream metadata reporting: Remove hardware specific alignment/padding when reporting codec unit positions
  • Misc d3d12 and vl_winsys_win32 bug fixes, mostly leaks

cc @jenatali @rdong

Merge request reports