From patchwork Mon Feb 2 21:02:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 26083 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 33163C3226 for ; Mon, 2 Feb 2026 21:02:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 767B061FEE; Mon, 2 Feb 2026 22:02:38 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="eBGWKfVR"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3F27661FEE for ; Mon, 2 Feb 2026 22:02:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770066155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5OHj1+15Wl7Z9ap4uAgV3Ct/kJLfsy6zxFPPOp2WvyU=; b=eBGWKfVR3E5TM1XmPNP8XwCx30WyvzWB2NdPBjdxvYnvPg6eOmMslNwaPNopl5gZWquE2o xQy090Ty5pZTg50khvKF6njc/W8iDKX8XvwBHYDLc7u+O2BTO8u2CaQdTA9zgl1ZtO8taO 1GZOWQANt4BBMRMh2iGz3nzNbzweYdI= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-53-qkvmX-AUMTahLHQM9w3yaQ-1; Mon, 02 Feb 2026 16:02:31 -0500 X-MC-Unique: qkvmX-AUMTahLHQM9w3yaQ-1 X-Mimecast-MFC-AGG-ID: qkvmX-AUMTahLHQM9w3yaQ_1770066150 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 81FB81956070; Mon, 2 Feb 2026 21:02:30 +0000 (UTC) Received: from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.32.127]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 00F6319560B2; Mon, 2 Feb 2026 21:02:28 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , Kieran Bingham Subject: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb Date: Mon, 2 Feb 2026 22:02:25 +0100 Message-ID: <20260202210225.65217-1-mzamazal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: i7GLdYL9BZeExx8sziaZ4SHPc5to-sVMUHiuwT6vzLA_1770066150 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The matrix multiplication in Awb is swapped: the gains should be applied after combinedMatrix, i.e. on the left side. The mistake happened when `ccm' was replaced with combinedMatrix; while CCM must be applied after gains, the gains must be applied after the combined matrix. Since there is currently no algorithm modifying combinedMatrix before Awb, combinedMatrix is an identity matrix there and the wrong order doesn't influence the output at the moment. Fixes: 5f3cdafe0fee ("Introduce a general correction matrix") Signed-off-by: Milan Zamazal --- src/ipa/simple/algorithms/awb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp index 6fdaacaba..4ed1be289 100644 --- a/src/ipa/simple/algorithms/awb.cpp +++ b/src/ipa/simple/algorithms/awb.cpp @@ -44,7 +44,7 @@ void Awb::prepare(IPAContext &context, 0, gains.g(), 0, 0, 0, gains.b() } }; context.activeState.combinedMatrix = - context.activeState.combinedMatrix * gainMatrix; + gainMatrix * context.activeState.combinedMatrix; frameContext.gains.red = gains.r(); frameContext.gains.blue = gains.b();