[mythtv] Android OpenGL Performance
pb.mythtv at gmail.com
Wed Jan 2 20:32:35 UTC 2019
On 1/1/19 8:04 PM, Mark Kendall wrote:
> As mentioned on IRC, I've gone through the OpenGL changes. I spotted a
> couple of potential issues for the YV12 code and performance in
> general and have pushed some updates. Can you see if they help?
> For the android build, you might also want to have a look at a couple
> of lines in MythRenderOpenGL that may need fixing:
> Firstly, in MythRenderOpenGL::setWidget there is a call to winId. The
> QOpenGLWidget documentation specifically recommends against calling
> this as it reduces performance - but we only use a QWidget. Not sure
> why we don't use a QOpenGLWidget (I'm guessing one of the 101
> workarounds for windowing issues) or whether the winId call hurts
> performance. That said the android build then sets the window surface
> type to OpenGL. I'd recommend just creating MythRenderOpenGLAndroid
> (subclass of MythRenderOpenGLES) and remove all of the hacks and
> workarounds (just use a QOpenGLWidget).
> Secondly - MythRenderOpenGL::doneCurrent no longer actually calls
> doneCurrent. I expect this will cause problems on some platforms.
With latest master
Fire stick 4K 1080i content Linear Blend (2x) YV12 unchecked, extra
Drops 22 frames per second (i.e. only manages 8 frames per second?)
With the Nov 20th version and UVYV checked these settings play with No
Fire stick 4K 1080i content Linear Blend YV12 unchecked, extra stage checked
Drops 24 frames per second (i.e. only manages to display 6 frames per
With the Nov 20th version and UYVY checked these settings play with No
Fire stick 4K 1080i content Linear Blend (2x) YV12 CHECKED, extra stage
Drops 6 frames per second (i.e. only manages 24 frames per second)
With the Nov 20th version drops 6 frames per second, the same.
With the latest version if I don't check "extra stage" the playback is
now consistently blank with all settings. With the November version if I
don't check "extra stage" the video is intermittently blank when using YV12.
To summarize, with the November version I get perfect playback with
UYVY, but with latest master it is terrible. With both November and
latest versions I get mediocre results using YV12.
More information about the mythtv-dev