[mythtv-commits] [MythTV/mythtv] 141a23: libmythui: Initial Vulkan rendering support

Mark Kendall noreply at github.com
Wed May 13 14:10:28 UTC 2020

  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: 141a23c8c1d3e6d29c92b5adbee888af5a13abde
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-05-13 (Wed, 13 May 2020)

  Changed paths:
    M mythtv/configure
    M mythtv/libs/libmythui/libmythui.pro
    M mythtv/libs/libmythui/mythmainwindow.h
    M mythtv/libs/libmythui/mythpainterwindow.cpp
    M mythtv/libs/libmythui/mythrender_base.h
    M mythtv/libs/libmythui/opengl/mythrenderopengl.cpp
    A mythtv/libs/libmythui/vulkan/mythindexbuffervulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythindexbuffervulkan.h
    A mythtv/libs/libmythui/vulkan/mythpaintervulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythpaintervulkan.h
    A mythtv/libs/libmythui/vulkan/mythpainterwindowvulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythpainterwindowvulkan.h
    A mythtv/libs/libmythui/vulkan/mythrendervulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythrendervulkan.h
    A mythtv/libs/libmythui/vulkan/mythshadersvulkan.h
    A mythtv/libs/libmythui/vulkan/mythshadervulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythshadervulkan.h
    A mythtv/libs/libmythui/vulkan/mythtexturevulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythtexturevulkan.h
    A mythtv/libs/libmythui/vulkan/mythuniformbuffervulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythuniformbuffervulkan.h
    A mythtv/libs/libmythui/vulkan/mythvertexbuffervulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythvertexbuffervulkan.h
    A mythtv/libs/libmythui/vulkan/mythwindowvulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythwindowvulkan.h

  Log Message:
  libmythui: Initial Vulkan rendering support

- this is baseline, functional support that works - mostly:) - but it
will be changing significantly.
- no UI renderer selection yet - if you enable Vulkan (disabled in
configure by default), then it will try to use Vulkan first.
- there are a couple of rendering oddities that should be fixed with the
next iteration.
- only tested on Intel Mesa drivers.
- it appears to be stable unless video playback is attempted - looks
like the device is lost when the window is resized/hidden/shown; which
is not properly handled yet.
- the implementation makes some initial attempts at optimising for the
Vulkan 'way' but needs more work - particularily around memory
management, memory transfer optimisations and synchronisation.
- as mentioned - no video playback support.
- requires at least Qt5.10 and the Vulkan headers - Qt dynamically loads
the requisite libs.
- validation layers (and Qt Vulkan logging) are enabled with 'gpu'
logging verbosity - but the validation layers must be installed.
- validation currently shows no issues until cleaning up on exit; which
also needs further work.
- optional support for libglslang is only required if working on the
shader code, otherwise the existing SPIR-V bytecode is used.

More information about the mythtv-commits mailing list