{"id":26084,"url":"https://patchwork.libcamera.org/api/patches/26084/?format=json","web_url":"https://patchwork.libcamera.org/patch/26084/","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":"<20260203115326.10421-1-mzamazal@redhat.com>","date":"2026-02-03T11:53:26","name":"[v2] libcamera: ipa: simple: Fix multiplication order in Awb","commit_ref":"bb2e6d0833adad9a1678c169fef74e9f7c211c73","pull_url":null,"state":"accepted","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/26084/mbox/","series":[{"id":5769,"url":"https://patchwork.libcamera.org/api/series/5769/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5769","date":"2026-02-03T11:53:26","name":"[v2] libcamera: ipa: simple: Fix multiplication order in Awb","version":2,"mbox":"https://patchwork.libcamera.org/series/5769/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/26084/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/26084/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 DF203C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  3 Feb 2026 11:53:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 256F762011;\n\tTue,  3 Feb 2026 12:53:42 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CCCE461A35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Feb 2026 12:53:39 +0100 (CET)","from mx-prod-mc-05.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-556-oY5GzSZ5Ovu3PI3ERJI2EA-1;\n\tTue, 03 Feb 2026 06:53:35 -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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id E35F61956095; Tue,  3 Feb 2026 11:53:33 +0000 (UTC)","from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.34.149])\n\tby mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id F28CF19560B4; Tue,  3 Feb 2026 11:53:31 +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=\"BCHBVJ8l\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1770119618;\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=W45G08Y/uGyKqrLMU9QRx6ZtlWeau6O5AaDLl3HyMRU=;\n\tb=BCHBVJ8lgBphOXtBYRldOnTRFkSGa9gCldPvG/kvskwNgXUv1GU+dLe1Z3lLgZtIhxno1P\n\tZJ7nmwHLHrIs8fgHBYAMW+ar080/R/XZwEAf5j8ulDf2zQL4K17Ggget0LPjlE8+vUzhQv\n\tMncQVh/4zE+Fw+i+gEZFVNAsOtIBq1c=","X-MC-Unique":"oY5GzSZ5Ovu3PI3ERJI2EA-1","X-Mimecast-MFC-AGG-ID":"oY5GzSZ5Ovu3PI3ERJI2EA_1770119614","From":"Milan Zamazal <mzamazal@redhat.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Milan Zamazal <mzamazal@redhat.com>, =?utf-8?b?QmFybmFiw6FzIFDFkWN6?=\n\t=?utf-8?q?e?= <barnabas.pocze@ideasonboard.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","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-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 and gainMatrix multiplication was\nmoved to Awb.  While CCM must be applied after gains, the gains must be\napplied after the combined matrix, which no longer corresponds to CCM in\nAwb.\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\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":["v2"]}