While doing research for #36 I found that the YUV->RGB conversion seems like a huge performance bottleneck.
It would be nice to be able to send YUV textures and convert them in the fragment shader?
e.g.
https://gist.github.com/jamie-pate/c30b49e10238ebcf844fee04c0b2b832
or libyuv which has been discussed here godotengine/godot#5886 (comment)
see godotengine/godot#9420
| Hardware |
OS |
Cmdline |
hwaccel |
FPS |
Speed |
Video Decode GPU (from taskmanager) |
Video |
| i5-5200U Intel HD Graphics 5500 |
Windows |
ffmpeg -y -i 8a41a2c3....webm -f rawvideo NUL |
|
234 |
7.8x |
|
|
|
|
|
qsv |
237 |
7.91x |
|
|
|
|
-pix_fmt rgb32 -f rawvideo |
|
87 |
2.9x |
|
|
|
|
-pix_fmt rgb32 -f rawvideo |
qsv |
87 |
2.9x |
|
|
|
|
-pix_fmt yuv420p -f rawvideo |
qsv |
245 |
8.18x |
|
|
|
|
-pix_fmt yuv420p -f rawvideo |
|
248 |
8.26x |
|
|
|
|
-pix_fmt yuv422p -f rawvideo |
|
111 |
3.71x |
|
|
While doing research for #36 I found that the YUV->RGB conversion seems like a huge performance bottleneck.
It would be nice to be able to send YUV textures and convert them in the fragment shader?
e.g.
https://gist.github.com/jamie-pate/c30b49e10238ebcf844fee04c0b2b832
or libyuv which has been discussed here godotengine/godot#5886 (comment)
see godotengine/godot#9420