From 48b6404f8e0e68f6bcf1ade2fd49a583b310d93d Mon Sep 17 00:00:00 2001 From: "U. Artie Eoff" Date: Fri, 19 Nov 2021 14:46:34 -0800 Subject: [PATCH] vaapioverlay: use vpp blend state iif using alpha Don't set VAAPI vpp blend flags if alpha == 1.0, i.e. fully opaque. This can avoid extra processing overhead on some drivers that apply blending unconditionally when flags are present, even if the end result is the same without blend flags (i.e. all opaque alpha channels). Part-of: --- .../gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiblend.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiblend.c b/subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiblend.c index 07a1ab6ed8..9f7cf94c31 100644 --- a/subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiblend.c +++ b/subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiblend.c @@ -275,9 +275,11 @@ gst_vaapi_blend_process_unlocked (GstVaapiBlend * blend, param->output_background_color = 0xff000000; #if VA_CHECK_VERSION(1,1,0) - blend_state.flags = VA_BLEND_GLOBAL_ALPHA; - blend_state.global_alpha = current->alpha; - param->blend_state = &blend_state; + if (current->alpha < 1.0) { + blend_state.flags = VA_BLEND_GLOBAL_ALPHA; + blend_state.global_alpha = current->alpha; + param->blend_state = &blend_state; + } #endif vaapi_unmap_buffer (va_display, id, NULL);