{"id":26083,"url":"https://patchwork.libcamera.org/api/patches/26083/?format=json","web_url":"https://patchwork.libcamera.org/patch/26083/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260202210225.65217-1-mzamazal@redhat.com>","date":"2026-02-02T21:02:25","name":"libcamera: ipa: simple: Fix multiplication order in Awb","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"7455fab3887a0b35e2c0d1ef4a6c09e74713f73e","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/?format=json","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/26083/mbox/","series":[{"id":5768,"url":"https://patchwork.libcamera.org/api/series/5768/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5768","date":"2026-02-02T21:02:25","name":"libcamera: ipa: simple: Fix multiplication order in Awb","version":1,"mbox":"https://patchwork.libcamera.org/series/5768/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/26083/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/26083/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 33163C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  2 Feb 2026 21:02:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 767B061FEE;\n\tMon,  2 Feb 2026 22:02:38 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3F27661FEE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  2 Feb 2026 22:02:36 +0100 (CET)","from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-53-qkvmX-AUMTahLHQM9w3yaQ-1;\n\tMon, 02 Feb 2026 16:02:31 -0500","from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.12])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id 81FB81956070; Mon,  2 Feb 2026 21:02:30 +0000 (UTC)","from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.32.127])\n\tby mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 00F6319560B2; Mon,  2 Feb 2026 21:02:28 +0000 (UTC)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"eBGWKfVR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1770066155;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding;\n\tbh=5OHj1+15Wl7Z9ap4uAgV3Ct/kJLfsy6zxFPPOp2WvyU=;\n\tb=eBGWKfVR3E5TM1XmPNP8XwCx30WyvzWB2NdPBjdxvYnvPg6eOmMslNwaPNopl5gZWquE2o\n\txQy090Ty5pZTg50khvKF6njc/W8iDKX8XvwBHYDLc7u+O2BTO8u2CaQdTA9zgl1ZtO8taO\n\t1GZOWQANt4BBMRMh2iGz3nzNbzweYdI=","X-MC-Unique":"qkvmX-AUMTahLHQM9w3yaQ-1","X-Mimecast-MFC-AGG-ID":"qkvmX-AUMTahLHQM9w3yaQ_1770066150","From":"Milan Zamazal <mzamazal@redhat.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Milan Zamazal <mzamazal@redhat.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","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-Transfer-Encoding":"8bit","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":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"The matrix multiplication in Awb is swapped: the gains should be applied\nafter combinedMatrix, i.e. on the left side.  The mistake happened when\n`ccm' was replaced with combinedMatrix; while CCM must be applied after\ngains, the gains must be applied after the combined matrix.\n\nSince there is currently no algorithm modifying combinedMatrix before\nAwb, combinedMatrix is an identity matrix there and the wrong order\ndoesn't influence the output at the moment.\n\nFixes: 5f3cdafe0fee (\"Introduce a general correction matrix\")\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\n---\n src/ipa/simple/algorithms/awb.cpp | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)","diff":"diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\nindex 6fdaacaba..4ed1be289 100644\n--- a/src/ipa/simple/algorithms/awb.cpp\n+++ b/src/ipa/simple/algorithms/awb.cpp\n@@ -44,7 +44,7 @@ void Awb::prepare(IPAContext &context,\n \t\t\t\t\t     0, gains.g(), 0,\n \t\t\t\t\t     0, 0, gains.b() } };\n \tcontext.activeState.combinedMatrix =\n-\t\tcontext.activeState.combinedMatrix * gainMatrix;\n+\t\tgainMatrix * context.activeState.combinedMatrix;\n \n \tframeContext.gains.red = gains.r();\n \tframeContext.gains.blue = gains.b();\n","prefixes":[]}