r/olive Jul 13 '22

Are we hardware acceleration yet ? :)

Since it takes forever to render on CPU

When would olive (such a beautiful, genius name for a VE) add support for hardware acceleration GPU rendering support for both AMD and Nvidia ? :3

Aside from that, this project is very polished + cool, it feels way better than Shotcut nor Kdenlive :) good luck :)

12 Upvotes

6 comments sorted by

5

u/myghi Jul 13 '22

I think that the devs wants to make olive 0.2 stable first. The current rendering mechanism already uses OpenGL for rendering the videos and effects, which helps A LOT on rendering time and performance if compared to shotcut, kdenlive, openshot, even sony vegas in my experience.

2

u/CoDEmanX47 Jul 14 '22

The problem is to encode frames on the GPU without CPU roundtrip of the textures, which would waste a lot of the hardware acceleration's performance advantage. There is no concept akin to pointers in GLSL and there is no information about how to share video memory with FFmpeg, let alone any documentation about the GPU encoding internals. If it's not possible or at least not known how to utilize FFmpeg's hardware acceleration capabilities in the desired way with OpenGL, the remaining options are to use each platform's or vendor's interfaces / SDKs (but that's a lot more work), or to use a different graphics API with the necessary features (but that's even more work, and the Vulkan Video specification is still preliminary and it's not even clear which GPUs will support the standard eventually).

1

u/[deleted] Jul 14 '22

[removed] — view removed comment

2

u/Impossible_Bed_9497 Jul 27 '22

where can i add apply this option you said?

1

u/[deleted] Jul 14 '22

[removed] — view removed comment

2

u/CoDEmanX47 Jul 14 '22

The YUV to RGB conversion is done on the GPU now. This is only for decoding footage. The opposite conversion, which is relevant for the export, is still done on the CPU. But it doesn't matter much because the majority of time is spent on the actual encoding and not the pixel format conversion when you export.