Cemu
Cemu copied to clipboard
H264 videos get stuck if the CPU isn't fast enough
Since the inclusion of the new h264 software video decoder this issue has made games like Rayman Legends not playable as it's impossible to skip those video cutscenes. The previous implementation of the h264 decoder doesn't have this issue
Originally we wanted to replace DXVA with Vulkan's video decoding API. But unfortunately H264 decoding adoption was and still is minimal.
DXVA had it's fair share of problems in regards to buggy drivers so I rather not bring that back, especially since it's Windows only. In general I would prefer software decoding over GPU accelerated decoding as its much more robust and not prone to driver issues.
Potential alternative options:
- ffmpeg's h264 decoder because it has better performance than the current ih264d decoder we use
- OpenH264 might become viable in the future. Right now it's still lacking full main profile and high profile support.
- Some other MPL friendly library we could use? We have more options now that we are open-source.
There may also be potential to squeeze extra performance out of ih264d. Since it's an undocumented black box it's capabilities are mostly a mystery without digging into the internals.
It seems yuzu uses FFMPEG for its video decoding, and has support for AMD and Nvidia GPUs on both windows and linux
ih264d
is also a large implement to removing the dependencies
folder, so I am in favor of looking for a more traditional replacement.
Just a note that the initial Rayman Legends video wedges on M1 Mac too, in 2.0-47. So perhaps it's not core performance based.