How to make use of VP9 hardware decode with Windows Server 2016 or 2019

Almost 2 years ago I wrote a blog, how to use H264ify as workaround for Nvidia Maxwell boards to force H264 decoding instead of VP9. In the meantime a lot of customer already have Pascal/Volta or Turing boards which are capable to decode VP9 in hardware. But unfortunately this doesn’t necessarily mean it is automatically used. Even worse, the opposite is the case.

I did a quick test with a fresh installed Windows Server 2019 and played a Youtube video with Chrome and guess what:

Youtube video playback without hardware decode

As we can see on the screenshot the codec in use (stats for nerds) is VP9 but there is no hardware decode visible with GPUProfiler although we are using a Tesla P40.

So what can we to to improve the situation and leverage the decode ASIC from our Tesla board?

chrome flags default
chrome flags enabled

Go to chrome:flags and search for decode. Enable D3D11 Video Decode setting and restart Chrome.

Afterwards lets redo our testing above and see what happens:

Youtube video playback with VP9 hardware decode

Now we can see a huge difference. Hardware decode is visible in GPUProfiler and in addition the CPU load is much lower as we are now leveraging the hardware ASIC for the decode process instead the CPU only.

Unfortunately I couldn’t find any setting to make this also work with Firefox .

About the Author


GRID Solution Architect and owner of this Blog site.

5 thoughts on “How to make use of VP9 hardware decode with Windows Server 2016 or 2019

Leave a Reply

Your email address will not be published.