d3d11compositor: Performance optimization
authorSeungha Yang <seungha@centricular.com>
Sat, 18 Jun 2022 11:14:22 +0000 (20:14 +0900)
committerSeungha Yang <seungha@centricular.com>
Mon, 20 Jun 2022 19:18:53 +0000 (19:18 +0000)
commita0404506850cf7b968ee6c5f08816173e452ad1b
treea8b73d7f78f238779013a1259536f9d33d66e9c9
parentadcb3ec1f2267f17932ca4ff37c6a1a6a91fdc90
d3d11compositor: Performance optimization

Removing glvideomixer-like nuance (it was initially referenced)
and rewriting element since it's not an optimal design at all
from performance point of view.

* Remove wrapper bin (and internal conversion/upload/download elements)
  which will waste CPU/GPU resources. Conversion/blending can be done by the
  d3d11compositor element at once.
* Add support YUV blending without RGB conversion.
  The RGB <-> YUV conversion is completely unnecessary since YUV textures
  support blending as well.
* Remove complicated blending operation properties since it's hard
  to use from application point of view. Instead, adding "operator" property
  like what compositor element does.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2631>
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11compositor.cpp
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11compositor.h
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11compositorbin.cpp [deleted file]
subprojects/gst-plugins-bad/sys/d3d11/gstd3d11compositorbin.h [deleted file]
subprojects/gst-plugins-bad/sys/d3d11/meson.build
subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp