From patchwork Tue Feb 3 11:53:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 26084 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 DF203C3226 for ; Tue, 3 Feb 2026 11:53:42 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 256F762011; Tue, 3 Feb 2026 12:53:42 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="BCHBVJ8l"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id CCCE461A35 for ; Tue, 3 Feb 2026 12:53:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770119618; 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=W45G08Y/uGyKqrLMU9QRx6ZtlWeau6O5AaDLl3HyMRU=; b=BCHBVJ8lgBphOXtBYRldOnTRFkSGa9gCldPvG/kvskwNgXUv1GU+dLe1Z3lLgZtIhxno1P ZJ7nmwHLHrIs8fgHBYAMW+ar080/R/XZwEAf5j8ulDf2zQL4K17Ggget0LPjlE8+vUzhQv MncQVh/4zE+Fw+i+gEZFVNAsOtIBq1c= Received: from mx-prod-mc-05.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-556-oY5GzSZ5Ovu3PI3ERJI2EA-1; Tue, 03 Feb 2026 06:53:35 -0500 X-MC-Unique: oY5GzSZ5Ovu3PI3ERJI2EA-1 X-Mimecast-MFC-AGG-ID: oY5GzSZ5Ovu3PI3ERJI2EA_1770119614 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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E35F61956095; Tue, 3 Feb 2026 11:53:33 +0000 (UTC) Received: from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.34.149]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id F28CF19560B4; Tue, 3 Feb 2026 11:53:31 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , =?utf-8?b?QmFybmFiw6FzIFDFkWN6?= =?utf-8?q?e?= , Kieran Bingham Subject: [PATCH v2] libcamera: ipa: simple: Fix multiplication order in Awb Date: Tue, 3 Feb 2026 12:53:26 +0100 Message-ID: <20260203115326.10421-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: LluRaoNstY2qKnBlYjSbtPNwOHrt-RKEGgxbOAgM7UQ_1770119614 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 and gainMatrix multiplication was moved to Awb. While CCM must be applied after gains, the gains must be applied after the combined matrix, which no longer corresponds to CCM in Awb. 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. 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();