From 1a9a99036e8e7fc0e37f8b3bc56d2d52e1600e36 Mon Sep 17 00:00:00 2001 From: Omar Emara Date: Tue, 7 Oct 2025 08:20:16 +0200 Subject: [PATCH] Fix #147372: Transparency does not work with VSE compositor modifier If a VSE compositor modifier is used to do keying or introduce an alpha somehow to the image, the alpha is not used when blending. This is because the VSE evaluator assumes all modifiers except Mask could not introduce an alpha channel. So we need to extend the check to also make an exception for the compositor modifier. Pull Request: https://projects.blender.org/blender/blender/pulls/147456 --- source/blender/sequencer/intern/render.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/blender/sequencer/intern/render.cc b/source/blender/sequencer/intern/render.cc index 4dae9e3fa6e..454f8dfe798 100644 --- a/source/blender/sequencer/intern/render.cc +++ b/source/blender/sequencer/intern/render.cc @@ -1831,8 +1831,11 @@ static bool is_opaque_alpha_over(const Strip *strip) return false; } LISTBASE_FOREACH (StripModifierData *, smd, &strip->modifiers) { - /* Assume result is not opaque if there is an enabled Mask modifier. */ - if ((smd->flag & STRIP_MODIFIER_FLAG_MUTE) == 0 && smd->type == eSeqModifierType_Mask) { + /* Assume result is not opaque if there is an enabled Mask or Compositor modifiers, which could + * introduce alpha. */ + if ((smd->flag & STRIP_MODIFIER_FLAG_MUTE) == 0 && + ELEM(smd->type, eSeqModifierType_Mask, eSeqModifierType_Compositor)) + { return false; } }