[mythtv-commits] Ticket #12799: Improve OSD on Raspberry Pi

MythTV noreply at mythtv.org
Fri Jun 17 15:49:07 UTC 2016


#12799: Improve OSD on Raspberry Pi
----------------------------+-----------------------------
 Reporter:  pbennett        |          Owner:  pbennett
     Type:  Developer Task  |         Status:  accepted
 Priority:  minor           |      Milestone:  unknown
Component:  Ports - rPi     |        Version:  Master Head
 Severity:  medium          |     Resolution:
 Keywords:                  |  Ticket locked:  0
----------------------------+-----------------------------

Comment (by pbennett):

 I have the OSD displaying with OpenGL ES on raspberry pi, using the
 existing code that displays with OpenGL. All OSDs are displaying correctly
 and with excellent detail, but there is a severe performance problem.
 Playback is badly impacted when the OSD appears. Subtitles are the worst
 offender. In general performance is much worse than with Software merge.

 Investigation shows that the call to OSD::!DrawDirect is taking from 200
 ms to 700 ms. Since this is done between frames in the frame rendering
 thread, up to 21 frames are lost when an OSD appears or changes. CPU time
 is not high so I suspect that the OpenGL calls are blocking.

 Removing the call to glFlush improves performance, but not enough. With
 this change, calls to OSD::!DrawDirect take from 50 ms to 200 ms.

 Options:

 1. Investigate further into which specific OGL operations are slow and try
 to improve them.

 2. Put OSD rendering in a separate thread. This may require a new osd
 renderer object and ways of synchronizing information. Simply using the
 existing OSD object in another thread does not work, for several reasons.

 3. Use the OSD::Draw method instead, which draws into a memory image, and
 then use OpenGL to display that image. The OSD::Draw is used by software
 merge and is fast.

--
Ticket URL: <https://code.mythtv.org/trac/ticket/12799#comment:2>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list