[mythtv-commits] [MythTV/mythtv] ed857f: Vulkan: Re-work UI painting pipeline

Mark Kendall noreply at github.com
Fri May 29 09:40:17 UTC 2020


  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: ed857f56a3c47f67982bfe1bba1dc1f26f663704
      https://github.com/MythTV/mythtv/commit/ed857f56a3c47f67982bfe1bba1dc1f26f663704
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M mythtv/libs/libmythui/libmythui.pro
    A mythtv/libs/libmythui/vulkan/mythcombobuffervulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythcombobuffervulkan.h
    A mythtv/libs/libmythui/vulkan/mythdebugvulkan.cpp
    A mythtv/libs/libmythui/vulkan/mythdebugvulkan.h
    M mythtv/libs/libmythui/vulkan/mythpaintervulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythpaintervulkan.h
    M mythtv/libs/libmythui/vulkan/mythpainterwindowvulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythrendervulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythrendervulkan.h
    M mythtv/libs/libmythui/vulkan/mythshadersvulkan.h
    M mythtv/libs/libmythui/vulkan/mythshadervulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythshadervulkan.h
    M mythtv/libs/libmythui/vulkan/mythtexturevulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythtexturevulkan.h
    M mythtv/libs/libmythui/vulkan/mythwindowvulkan.cpp

  Log Message:
  -----------
  Vulkan: Re-work UI painting pipeline

- don't use an index buffer but create triangle strip vertices within
the vertex shader
- pack the transform, texture coordinates, screen coordinates and some
colour data into a 112byte buffer that is within the limits for Vulkan
push constants
- the UI render pass now requires a single uniform for the projection,
images/image views/descriptors for each texture and dynamic data is
passed via push constants - which greatly simplifies (and perhaps speeds
up) rendering.
- both MythIndexBufferVulkan and MythVertexBufferVulkan are now
redundant but are retained for the time being.
- also add debug marker support (currently of limited use).
- while simplifying the render pass, this does not appear to fix the
known rendering oddities...


  Commit: e592c61dc478fb5580dc00196a675cadb904994c
      https://github.com/MythTV/mythtv/commit/e592c61dc478fb5580dc00196a675cadb904994c
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M mythtv/libs/libmythui/vulkan/mythpaintervulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythpaintervulkan.h

  Log Message:
  -----------
  Vulkan: Pre-allocate all texture descriptor sets


  Commit: 6438e9e00d6b58e09ac3112faa5d55e792cdfea9
      https://github.com/MythTV/mythtv/commit/6438e9e00d6b58e09ac3112faa5d55e792cdfea9
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M mythtv/libs/libmythui/vulkan/mythrendervulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythrendervulkan.h
    M mythtv/libs/libmythui/vulkan/mythtexturevulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythtexturevulkan.h

  Log Message:
  -----------
  Vulkan: Enable pipelining of texture uploads

- by passing in a command buffer


  Commit: 428b519532d143211a75942df5c8b59f002c6e43
      https://github.com/MythTV/mythtv/commit/428b519532d143211a75942df5c8b59f002c6e43
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M mythtv/libs/libmythui/vulkan/mythpaintervulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythpaintervulkan.h

  Log Message:
  -----------
  MythPainterVulkan: Pipeline texture uploads

- this still needs some love but all uploads are pipelined into a single
command buffer that is completed before the render pass (N.B. We cannot
upload textures during the render pass)
- the use of vkQueueWaitIdle seems excessive...


  Commit: 398c0e3ef6f9cc840d642b48555d7e00c6a3f3f0
      https://github.com/MythTV/mythtv/commit/398c0e3ef6f9cc840d642b48555d7e00c6a3f3f0
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M mythtv/libs/libmythui/vulkan/mythdebugvulkan.cpp
    M mythtv/libs/libmythui/vulkan/mythdebugvulkan.h
    M mythtv/libs/libmythui/vulkan/mythtexturevulkan.h

  Log Message:
  -----------
  MythDebugVulkan: Add support for naming objects

- as for region markers, only usefull when run through a Vulkan debugger


  Commit: 747ffc7dbc8a59443b7141f3b7f7b50ab9419939
      https://github.com/MythTV/mythtv/commit/747ffc7dbc8a59443b7141f3b7f7b50ab9419939
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-05-29 (Fri, 29 May 2020)

  Changed paths:
    M mythtv/libs/libmythui/vulkan/mythpaintervulkan.cpp

  Log Message:
  -----------
  MythPainterVulkan: Squash some validation warnings

- the validation layers occasionally warn about deleting images and
image views that are still in use (from the previous frame).
- so wait if necessary to ensure the frame is complete
- not entirely sure why this is necessary at this point - though may be
due to our custom UI refresh timer and the async nature of the Vulkan
rendering (i.e. we get a refresh request before the last frame has been
presented, even with vsync enabled etc)


Compare: https://github.com/MythTV/mythtv/compare/f6cf85e9d974...747ffc7dbc8a


More information about the mythtv-commits mailing list