• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

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

Raevenlord

News Editor
Joined
Aug 12, 2016
Messages
3,755 (1.17/day)
Location
Portugal
System Name The Ryzening
Processor AMD Ryzen 9 5900X
Motherboard MSI X570 MAG TOMAHAWK
Cooling Lian Li Galahad 360mm AIO
Memory 32 GB G.Skill Trident Z F4-3733 (4x 8 GB)
Video Card(s) Gigabyte RTX 3070 Ti
Storage Boot: Transcend MTE220S 2TB, Kintson A2000 1TB, Seagate Firewolf Pro 14 TB
Display(s) Acer Nitro VG270UP (1440p 144 Hz IPS)
Case Lian Li O11DX Dynamic White
Audio Device(s) iFi Audio Zen DAC
Power Supply Seasonic Focus+ 750 W
Mouse Cooler Master Masterkeys Lite L
Keyboard Cooler Master Masterkeys Lite L
Software Windows 10 x64
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.

View at TechPowerUp Main Site
 
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.
 
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.
 
How many years!?! Now H.266 is out. That will be DX20 before its supported.
 
So Nvidia have supported this since July already?
 
This 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.
 
So we get a generic encoding/decoding engine instead of needing to use Intel Quicksync and Nvenc?
 
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.
 
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
 
Back
Top