Thursday, December 9th 2021

Microsoft Introduces DX12 Support for H264 and H265 Encoding via API Release

Microsoft today announced the release of H264 and H265 encoding through its DX12 API. The move brings GPU acceleration support for several video applications such as Video Decoding, Video Processing and Motion estimation. Theoretically, this should ease the burden on developers, who instead of having to implement video encoding acceleration according to the graphics vendor (be it AMD, Intel or NVIDIA), can now work through the DX12 API to achieve the same effect throughout all providers, simplifying programming and efficiency efforts - though Microsoft was coy about potential advantages and disadvantages of the new feature.

While the implementation will eventually reach all platforms, the DX12 API encoding integration is currently only available for both Intel and NVIDIA. Work still has to be done on AMD's implementation, which generally uses fixed-hardware function blocks to allow for higher performance whilst encoding and transcoding - at the loss of some flexibility. There are graphics cards driver requirements that have to be fulfilled to enable the full encoding capabilities (and these can also be only partially supported, though performance will undoubtedly suffer).
Intel drivers support the new DX12 API feature from v30.0.100.9955 for the Tiger Lake, Ice Lake and Alder Lake (starting in 2022) architectures. NVIDIA driver support is available from release v471.41, and the encoding feature is supported by GTX 1000, 2000, 3000 and Quadro series cards through. Support for AMD graphics accelerators starting from the RX 5000 series and the IGP in Ryzen 2000 APUs is expected towards Q2 2022.
Source: Microsoft
Add your own comment

9 Comments on Microsoft Introduces DX12 Support for H264 and H265 Encoding via API Release

#1
ncrs
Interesting, looks like it's natively supported in Windows 11, but also available in DirectX 12 Agility SDK which, in theory, would allow this to work on Windows 10 as well.
This would probably allow a rather easy (as easy as D3D COM programming is...) implementation of a tool to compare the quality of hardware encoders between vendors.
Posted on Reply
#2
Punkenjoy
If that does the same things as D3D did for 3d, it could be a way to get the same Output with different performance level and it could be a way to compare the quality/performance of all those encoder at the same output.
Posted on Reply
#3
ir_cow
How many years!?! Now H.266 is out. That will be DX20 before its supported.
Posted on Reply
#4
Fluffmeister
So Nvidia have supported this since July already?
Posted on Reply
#5
ncrs
FluffmeisterSo Nvidia have supported this since July already?
This is not surprising. They often support stuff before it gets officially announced (especially OpenGL/Vulkan extensions).
Posted on Reply
#6
Fluffmeister
ncrsThis is not surprising. They often support stuff before it gets officially announced (especially OpenGL/Vulkan extensions).
Indeed, the baddies always give the best support.

The woke will have to wait.
Posted on Reply
#7
Mussels
Freshwater Moderator
So we get a generic encoding/decoding engine instead of needing to use Intel Quicksync and Nvenc?
Posted on Reply
#8
chrcoluk
How is this new over what NVENC already offers?

It has my interest, as NVENC creates massive files. Whilst x264 encoding is much smaller files for same quality.
Posted on Reply
#9
Athlonite
now all we need are the programs that will support it .
Handbrake talked a great deal about using OpenCL and the specific nVidia/AMD encoders to do all the work in hardware instead of software but they never quite got around to getting it to work so basically if had nVidia or intel you got hardware accelerated encoding but if you had AMD well you were stuck with old school software encoding using your CPU instead just like the nVidia/physX debacle
Posted on Reply
Apr 25th, 2024 03:24 EDT change timezone

New Forum Posts

Popular Reviews

Controversial News Posts