[mythtv-commits] [MythTV/mythtv] dae4d1: MythOpenGLPainter: Avoid flush if possible

Mark Kendall noreply at github.com
Fri Sep 13 10:26:38 UTC 2019


  Branch: refs/heads/devel/2019-render
  Home:   https://github.com/MythTV/mythtv
  Commit: dae4d12c976511163ea3aae59338dc8fcfed9919
      https://github.com/MythTV/mythtv/commit/dae4d12c976511163ea3aae59338dc8fcfed9919
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:
    M mythtv/libs/libmythui/mythpainter_ogl.cpp
    M mythtv/libs/libmythui/mythpainter_ogl.h

  Log Message:
  -----------
  MythOpenGLPainter: Avoid flush if possible


  Commit: 832def489e72fc5f3b649c5e413f2cb003c94551
      https://github.com/MythTV/mythtv/commit/832def489e72fc5f3b649c5e413f2cb003c94551
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:
    M mythtv/libs/libmythui/mythrender_opengl.cpp
    M mythtv/libs/libmythui/mythrender_opengl.h

  Log Message:
  -----------
  MythRenderOpenGL: Minor cleanup


  Commit: d0209218998ce258858f67cbea69dd41ba5ba474
      https://github.com/MythTV/mythtv/commit/d0209218998ce258858f67cbea69dd41ba5ba474
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:
    M mythtv/programs/mythavtest/commandlineparser.cpp

  Log Message:
  -----------
  MythAVTest: Fix command line parser


  Commit: 43087f28eb57ae3cde4375a5a091d6b993158212
      https://github.com/MythTV/mythtv/commit/43087f28eb57ae3cde4375a5a091d6b993158212
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:
    M mythtv/libs/libmythui/mythpainter_ogl.cpp
    M mythtv/libs/libmythui/mythpainter_ogl.h

  Log Message:
  -----------
  MythOpenGLPainter: Revert 'Avoid flush if possible'


  Commit: c1bffb889846ad3444d4e23c721086c3175ccaf9
      https://github.com/MythTV/mythtv/commit/c1bffb889846ad3444d4e23c721086c3175ccaf9
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-07-30 (Tue, 30 Jul 2019)

  Changed paths:
    M mythtv/libs/libmythui/mythrender_opengl.cpp

  Log Message:
  -----------
  MythRenderOpenGL: Default to NOT using glFlush

- a little experimental so may need additional work
- flushing should be unnecessary with modern drivers, particularly with
our use case with a double buffered context.
- it is clearing causing unnecessary delays on certain platforms (tested
with Pi and various Intel/linux configurations)


  Commit: 733acd1555c4c84c6fedea15ad1930aeec2fd3e6
      https://github.com/MythTV/mythtv/commit/733acd1555c4c84c6fedea15ad1930aeec2fd3e6
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M mythtv/libs/libmythtv/videoout_opengl.cpp
    M mythtv/libs/libmythtv/videoout_opengl.h
    M mythtv/libs/libmythui/libmythui.pro
    A mythtv/libs/libmythui/mythopenglperf.cpp
    A mythtv/libs/libmythui/mythopenglperf.h

  Log Message:
  -----------
  OpenGL: Add MythOpenGLPerf - an OpenGL timer

- a simple sub-class of QOpenGLTimeMonitor to record the exection time
of blocks of OpenGL code
- add OpenGL performance monitoring for VideoOutputOpenGL and run when -
v gpu verbosity is enabled (i.e. mythfrontend -v gpu)
- execution time is recorded for texture upload (when applicable),
framebuffer clearing, rendering, flushing and the final framebuffer swap.


  Commit: 21b9ab7d154914ae9013f4044d83f961fddf155f
      https://github.com/MythTV/mythtv/commit/21b9ab7d154914ae9013f4044d83f961fddf155f
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-09-13 (Fri, 13 Sep 2019)

  Changed paths:
    M mythtv/libs/libmythtv/videoout_opengl.cpp
    M mythtv/libs/libmythtv/videooutwindow.cpp
    M mythtv/libs/libmythtv/videooutwindow.h
    M mythtv/libs/libmythui/mythrender_opengl.cpp
    M mythtv/libs/libmythui/mythrender_opengl.h

  Log Message:
  -----------
  VideoOutputOpenGL: Optimise FrameBuffer clearing

- if video is 'fullscreen' then there is no need to clear the framebuffer
- when not fullscreen, use QRegion to retrieve the QRect's that map to
the unused portions of the screen and clear these directly (with a new,
optimised MythRenderOpenGL::ClearRect method) instead of clearing the
complete framebuffer
- offers a significant performance improvement in all cases tested


Compare: https://github.com/MythTV/mythtv/compare/d788f8e6f76c...21b9ab7d1549


More information about the mythtv-commits mailing list