[{"id":38053,"web_url":"https://patchwork.libcamera.org/comment/38053/","msgid":"<7e8e0bfb-1162-4f8d-88b6-b73cf01108f6@ideasonboard.com>","date":"2026-02-03T09:07:17","subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2026. 02. 02. 22:02 keltezéssel, Milan Zamazal írta:\n> The matrix multiplication in Awb is swapped: the gains should be applied\n> after combinedMatrix, i.e. on the left side.  The mistake happened when\n> `ccm' was replaced with combinedMatrix; while CCM must be applied after\n> gains, the gains must be applied after the combined matrix.\n> \n> Since there is currently no algorithm modifying combinedMatrix before\n> Awb, combinedMatrix is an identity matrix there and the wrong order\n> doesn't influence the output at the moment.\n> \n> Fixes: 5f3cdafe0fee (\"Introduce a general correction matrix\")\n\nWhy not da0926bc4b2dc28599ee2000ee9fb375b38d4f9e (\"libcamera: ipa: simple: Apply gain matrix in awb\") ?\nI would argue the mistake happened while moving the multiplication?\nOr I suppose both could be mentioned, or neither since this is a theoretical\nissue at the moment.\n\n\n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>   src/ipa/simple/algorithms/awb.cpp | 2 +-\n>   1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\n> index 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();","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 84B6CC3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  3 Feb 2026 09:07:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A38A262010;\n\tTue,  3 Feb 2026 10:07:22 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 53F5E61FC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Feb 2026 10:07:21 +0100 (CET)","from [192.168.33.51] (185.221.142.123.nat.pool.zt.hu\n\t[185.221.142.123])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D9E7F161;\n\tTue,  3 Feb 2026 10:06:39 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"NnWktpnF\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1770109599;\n\tbh=vGbNmSHI7MSzG4+x3zxnRe88V+L4LI8PC7BkceaGpRg=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=NnWktpnFclj8Enu3FfB8GpoddikhMJaEBA3z70VDTH9yL/s+qT8qySAfM9nsHGh5e\n\trVsNgCbjBF9xn6l9ZVcWglqGPsPN2A9JKnwRkfC8VCIGJWnPNXIGqpJBqgz6hrxpKL\n\tBpOKC4+SolnZsZJzBKlb+f3UPSL1hQF9gorx0z/g=","Message-ID":"<7e8e0bfb-1162-4f8d-88b6-b73cf01108f6@ideasonboard.com>","Date":"Tue, 3 Feb 2026 10:07:17 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20260202210225.65217-1-mzamazal@redhat.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20260202210225.65217-1-mzamazal@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>"}},{"id":38054,"web_url":"https://patchwork.libcamera.org/comment/38054/","msgid":"<85343i2meb.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2026-02-03T09:42:52","subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Barnabás,\n\nBarnabás Pőcze <barnabas.pocze@ideasonboard.com> writes:\n\n> 2026. 02. 02. 22:02 keltezéssel, Milan Zamazal írta:\n>> The matrix multiplication in Awb is swapped: the gains should be applied\n>> after combinedMatrix, i.e. on the left side.  The mistake happened when\n>> `ccm' was replaced with combinedMatrix; while CCM must be applied after\n>> gains, the gains must be applied after the combined matrix.\n>> Since there is currently no algorithm modifying combinedMatrix before\n>> Awb, combinedMatrix is an identity matrix there and the wrong order\n>> doesn't influence the output at the moment.\n>> Fixes: 5f3cdafe0fee (\"Introduce a general correction matrix\")\n>\n> Why not da0926bc4b2dc28599ee2000ee9fb375b38d4f9e (\"libcamera: ipa: simple: Apply gain matrix in awb\") ?\n> I would argue the mistake happened while moving the multiplication?\n\nNo, that commit didn't change anything about the bug, the wrong\nmultiplication\n\n  context.activeState.combinedMatrix * gainMatrix\n\nwas used both before and after.  The commit just moved a piece of code,\nwhich happened to contain a bug, from one place to another and there is\nno error in the move itself.\n\n> Or I suppose both could be mentioned, or neither since this is a theoretical\n> issue at the moment.\n\nI don't know what's the exact policy, I'm fine with both removing it or\nkeeping it.\n\n>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>> ---\n>>   src/ipa/simple/algorithms/awb.cpp | 2 +-\n>>   1 file changed, 1 insertion(+), 1 deletion(-)\n>> diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\n>> index 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>>     \tframeContext.gains.red = gains.r();\n>>   \tframeContext.gains.blue = gains.b();","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 D297EBD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  3 Feb 2026 09:43:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C632262011;\n\tTue,  3 Feb 2026 10:43:00 +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 02E8F61FC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Feb 2026 10:42:58 +0100 (CET)","from mail-wr1-f70.google.com (mail-wr1-f70.google.com\n\t[209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-591-Peg0lbijMB6dALQeCfNvLg-1; Tue, 03 Feb 2026 04:42:56 -0500","by mail-wr1-f70.google.com with SMTP id\n\tffacd0b85a97d-435a2de6ec0so3251935f8f.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 03 Feb 2026 01:42:55 -0800 (PST)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-435e10ee04csm50825489f8f.12.2026.02.03.01.42.52\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 03 Feb 2026 01:42:53 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"dpu3cPjV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1770111777;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=/hLpUsI/zNj+F1agmfaK3VD1ASefL90UP7xN2adkrzY=;\n\tb=dpu3cPjVKZG6hY3+Yjrn5HkVQLBrDyiyOSFK7C1wSygsYC3WhfskAXMgxsjuZQYGzRYW8Z\n\tZAC0SEzcntfn6q4dEHTn6jcEVFn3Us+Cx4RLyCl50KLFt13HIOoMYMs5y66dFcIQlloTfp\n\tx2j95yQxjiLkeezT29zP272q13QjNP8=","X-MC-Unique":"Peg0lbijMB6dALQeCfNvLg-1","X-Mimecast-MFC-AGG-ID":"Peg0lbijMB6dALQeCfNvLg_1770111775","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1770111774; x=1770716574;\n\th=content-transfer-encoding:mime-version:user-agent:message-id:date\n\t:references:in-reply-to:subject:cc:to:from:x-gm-gg\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=50ZcfseT63gem+Exu14NEAn44Qfn5BRNnTEgOh/y61c=;\n\tb=v68wo5Z3oNtfbg3rnY9L1CWoqZJrm4GsJOko85OKe8y0M0CB3k2B8hoPerjOLjWMUt\n\t1xKvF0RbQxBbrz9ekP4rFi7xFi0p0PuIRw6QORUsnxOjhlV88moXEF2+v4D9ymKw1WQQ\n\tKP/SfzjFmK1mBUbb2th/ZtvUOmXbtyXvNYeHYBDSVEIpQtCrPHPscsC3kV6M7S5uCeL/\n\tINpBpdjqxU7x9PWIgMiRz/pteEou2M5KOx/5KFarxJCoiO21NAyZy3kL6AuOCF++2olC\n\thhziyJ7H434jyovuzrfvp0VOudEPPtS2mzMOPzDPbCRK55YG82WJB8rzkPe9l5ljKAw4\n\t1eFA==","X-Gm-Message-State":"AOJu0Yw1lmw++/EdrrqLX6+iE3b+rcg6ARW6TlW+nOzB95UrBixyCHH+\n\tisbPCqkpmoPCCwGWKxmr+AsTk8+XZIVOM/1VCc2vWdKHhBvhdEZgGjxv/Lk3pKd0xeEHZuFv0iy\n\tfMdOXNdej8RxcIRbu2Lp00/KteNKtXJkXjKWHyqLJV9/kPGBzL/GAnqL3XQfvjtY3697lyPtONd\n\tP+UrIjppI=","X-Gm-Gg":"AZuq6aK7Fp+0Pjl7S22bKpnWYdFVCbUH9mT6ZDyqHIMtHmZGgJHqIXXSJhXn1bf6zvD\n\tfyifMyzlZyvg5PXwTuxVekQC3QOLLRQuU+1dYQ+SdAxGwjTqdcVTm5a25cIU69O1kC5dqZ4QoOr\n\tdV6bzeu1HcHIetBgnrWt+f3eopAEA9qF0o1HzOnKhqQcA5xaHzw6wsoULeW88bDMztxSsPCX2tF\n\tDotyBkKZePm2eaEWb29XhI2rs1XlbFgZsUtvR64X7q5O9VA7pyqkHg36WEPsBBiCyhPt5T4XJDp\n\tWosp0ptlPjFhiv2s4yTWnUV+Pun4iiQdof6HqNF5P8/YkrtRfaC5vuyJafJcexfJDlTDRGzTI7n\n\t/ZzxZ7Vhz9nUDYGNmStcjjnXl86USZBW0gmWbEie2U/cyxD9HKTP5OwgmWyhYgic=","X-Received":["by 2002:a05:6000:61e:b0:435:a2f8:1536 with SMTP id\n\tffacd0b85a97d-435f3ab5008mr19872826f8f.43.1770111774484; \n\tTue, 03 Feb 2026 01:42:54 -0800 (PST)","by 2002:a05:6000:61e:b0:435:a2f8:1536 with SMTP id\n\tffacd0b85a97d-435f3ab5008mr19872802f8f.43.1770111774025; \n\tTue, 03 Feb 2026 01:42:54 -0800 (PST)"],"From":"Milan Zamazal <mzamazal@redhat.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,  Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","In-Reply-To":"<7e8e0bfb-1162-4f8d-88b6-b73cf01108f6@ideasonboard.com> (\n\t=?utf-8?b?IkJhcm5hYsOhcyBQxZFjemUiJ3M=?= message of \"Tue,\n\t3 Feb 2026  10:07:17 +0100\")","References":"<20260202210225.65217-1-mzamazal@redhat.com>\n\t<7e8e0bfb-1162-4f8d-88b6-b73cf01108f6@ideasonboard.com>","Date":"Tue, 03 Feb 2026 10:42:52 +0100","Message-ID":"<85343i2meb.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"7PrV2sWCDfyjeu6hWbb1xmCv738gCa1wad4Rn0PJhKI_1770111775","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","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>"}},{"id":38055,"web_url":"https://patchwork.libcamera.org/comment/38055/","msgid":"<85y0la17j2.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2026-02-03T09:49:21","subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Milan Zamazal <mzamazal@redhat.com> writes:\n\n> Hi Barnabás,\n>\n> Barnabás Pőcze <barnabas.pocze@ideasonboard.com> writes:\n>\n>> 2026. 02. 02. 22:02 keltezéssel, Milan Zamazal írta:\n>>> The matrix multiplication in Awb is swapped: the gains should be applied\n>>> after combinedMatrix, i.e. on the left side.  The mistake happened when\n>>> `ccm' was replaced with combinedMatrix; while CCM must be applied after\n>>> gains, the gains must be applied after the combined matrix.\n>>> Since there is currently no algorithm modifying combinedMatrix before\n>>> Awb, combinedMatrix is an identity matrix there and the wrong order\n>>> doesn't influence the output at the moment.\n>>> Fixes: 5f3cdafe0fee (\"Introduce a general correction matrix\")\n>>\n>> Why not da0926bc4b2dc28599ee2000ee9fb375b38d4f9e (\"libcamera: ipa: simple: Apply gain matrix in awb\") ?\n>> I would argue the mistake happened while moving the multiplication?\n>\n> No, that commit didn't change anything about the bug, the wrong\n> multiplication\n>\n>   context.activeState.combinedMatrix * gainMatrix\n>\n> was used both before and after.  The commit just moved a piece of code,\n> which happened to contain a bug, from one place to another and there is\n> no error in the move itself.\n\nAh, but the final matrix is different due to the move.\n\nOK, I'll adjust the commit message.\n\n>> Or I suppose both could be mentioned, or neither since this is a theoretical\n>> issue at the moment.\n>\n> I don't know what's the exact policy, I'm fine with both removing it or\n> keeping it.\n>\n>>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>>> ---\n>>>   src/ipa/simple/algorithms/awb.cpp | 2 +-\n>>>   1 file changed, 1 insertion(+), 1 deletion(-)\n>>> diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\n>>> index 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>>>     \tframeContext.gains.red = gains.r();\n>>>   \tframeContext.gains.blue = gains.b();","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 E29F7C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  3 Feb 2026 09:49:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2117962011;\n\tTue,  3 Feb 2026 10:49:29 +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 ED2E661FC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Feb 2026 10:49:26 +0100 (CET)","from mail-wr1-f70.google.com (mail-wr1-f70.google.com\n\t[209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-52-3p-dAaCbO_m9JOf8UfIUIg-1; Tue, 03 Feb 2026 04:49:24 -0500","by mail-wr1-f70.google.com with SMTP id\n\tffacd0b85a97d-4358f90fe8dso484611f8f.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 03 Feb 2026 01:49:24 -0800 (PST)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-435e10ee078sm50455677f8f.16.2026.02.03.01.49.21\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 03 Feb 2026 01:49:21 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"Z+FG2RCj\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1770112165;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=XIV2Als4UvwqFxMCNMUctb3le8EOJ67NeqMK4xpVgEE=;\n\tb=Z+FG2RCjtm091YeOVPhUX0qH4jDsBP8xmTfm506jEjOOQUEbaaw024m0OVFjXVNWnjAwpK\n\t9AejQWmBtcHXnDzkcyex0KDww8/F4t9hHIVmlxqS1NH0BSqlC4/oEvkmpj2UoyElKo5URp\n\tcfxMvF8VLMqzN+VNcV5iZgy5/2mhp6o=","X-MC-Unique":"3p-dAaCbO_m9JOf8UfIUIg-1","X-Mimecast-MFC-AGG-ID":"3p-dAaCbO_m9JOf8UfIUIg_1770112163","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1770112163; x=1770716963;\n\th=content-transfer-encoding:mime-version:user-agent:message-id:date\n\t:references:in-reply-to:subject:cc:to:from:x-gm-gg\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=VaO1ciuWic2Tj9kJ6t5TZ+mNCqQOE1uwkxucdnlTRss=;\n\tb=Kj7GHnQoeZA+x51ZMPlYKKHOuzbD/VQgYsOzWa7p69VGVdMmikIcvr+UCX8Xwr1dkt\n\t174lDs+6Zv8oHF6I9o+WFguctpt20x2T1JHuk7bhNSHrzUp6lk9mNFuYntQ4UOTdMViW\n\tSFy7tANokOLkjiP1aNMzSfwgWwuRu+lVtoe3PI/3xQZ8Mq0KNYUvCyCH9xgUZzBXBbjd\n\tw92NKR17LkZkjC18MD3a5of9AvLk5VtcqOXWQ/DEfP7oRxU2IIg19D9KLkIiE3QTj6I4\n\tF497VrL6x0fC2wbGwh8Wd9iw+2huT43SkZjS866a0BG5yXdVArSJb63pzEp9YylSsWIR\n\tIisQ==","X-Gm-Message-State":"AOJu0YyhHaDhzV+V8v2QZNifgJP5hcjkpweI/bvahhB02ncba0rYuzEj\n\tk09sDFMCjxAlE+GK1mUsYTY8DgaCOjiBCoNWVVvLvfsMhRlyec3hIqaEeIQ9lIkLQ1VXaSxmqiD\n\tIOV++3DKf1BzzpXG7VHY1EqgPDeFy36/9TPyPrhMjGhbdk13UYUvqB8+1QsZKi2lqNiDfWgzrLc\n\tE=","X-Gm-Gg":"AZuq6aIjv6Y1BavCrZpO9mbgFhgtqRslVkvaax0phMTGOGsvX7iGIz5hJF7oqGQMS8S\n\t3CaO9/Nxx2mNpflXGAwSb5r/R/GMqL6NFV5fOAI42WkSztQurxSczsPsLb5kbtYYzxYIg7d+KNV\n\tBWurFhR2KgDPp3VkRthdn/ZhEYHOQ7qggbWD3QBDszChB7ieKUEXCRupxIs3dzRDp7b4O9ExFFZ\n\t5az+ZttTI43vhw/5AJ2DvHzgatHw+a7/SElOxdHFQ+xPuHYPrxcR+9Mnr3BBzqhR2YmhbQbwW0a\n\to2MlhOMlxwYPFX7gBbo1erK7P7wO4eMVWrfj99VzDOw3ASzC5Ekg1i4OIQQST5Zzaxt81+TTfBr\n\ttMnMpRVC6BtgdJsIijxERsBbM8TMVLGngfqaZP72ybTLg7rKAEO1ys++RVNAu+SE=","X-Received":["by 2002:a05:6000:2408:b0:435:e07d:47ac with SMTP id\n\tffacd0b85a97d-43611453edbmr4413728f8f.28.1770112162974; \n\tTue, 03 Feb 2026 01:49:22 -0800 (PST)","by 2002:a05:6000:2408:b0:435:e07d:47ac with SMTP id\n\tffacd0b85a97d-43611453edbmr4413693f8f.28.1770112162580; \n\tTue, 03 Feb 2026 01:49:22 -0800 (PST)"],"From":"Milan Zamazal <mzamazal@redhat.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,  Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","In-Reply-To":"<85343i2meb.fsf@mzamazal-thinkpadp1gen7.tpbc.csb> (Milan\n\tZamazal's message of \"Tue, 03 Feb 2026 10:42:52 +0100\")","References":"<20260202210225.65217-1-mzamazal@redhat.com>\n\t<7e8e0bfb-1162-4f8d-88b6-b73cf01108f6@ideasonboard.com>\n\t<85343i2meb.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Date":"Tue, 03 Feb 2026 10:49:21 +0100","Message-ID":"<85y0la17j2.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"oNBx7_p8rGKDjKpRmxZ9A1R-sE_hnfDT3BiRjpq7pK4_1770112163","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","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>"}},{"id":38056,"web_url":"https://patchwork.libcamera.org/comment/38056/","msgid":"<1b2207a2-7a8d-4039-a3a5-5634d6ceb701@ideasonboard.com>","date":"2026-02-03T10:40:16","subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2026. 02. 03. 10:49 keltezéssel, Milan Zamazal írta:\n> Milan Zamazal <mzamazal@redhat.com> writes:\n> \n>> Hi Barnabás,\n>>\n>> Barnabás Pőcze <barnabas.pocze@ideasonboard.com> writes:\n>>\n>>> 2026. 02. 02. 22:02 keltezéssel, Milan Zamazal írta:\n>>>> The matrix multiplication in Awb is swapped: the gains should be applied\n>>>> after combinedMatrix, i.e. on the left side.  The mistake happened when\n>>>> `ccm' was replaced with combinedMatrix; while CCM must be applied after\n>>>> gains, the gains must be applied after the combined matrix.\n>>>> Since there is currently no algorithm modifying combinedMatrix before\n>>>> Awb, combinedMatrix is an identity matrix there and the wrong order\n>>>> doesn't influence the output at the moment.\n>>>> Fixes: 5f3cdafe0fee (\"Introduce a general correction matrix\")\n>>>\n>>> Why not da0926bc4b2dc28599ee2000ee9fb375b38d4f9e (\"libcamera: ipa: simple: Apply gain matrix in awb\") ?\n>>> I would argue the mistake happened while moving the multiplication?\n>>\n>> No, that commit didn't change anything about the bug, the wrong\n>> multiplication\n>>\n>>    context.activeState.combinedMatrix * gainMatrix\n>>\n>> was used both before and after.  The commit just moved a piece of code,\n>> which happened to contain a bug, from one place to another and there is\n>> no error in the move itself.\n> \n> Ah, but the final matrix is different due to the move.\n> \n> OK, I'll adjust the commit message.\n\nWait, sorry, I think the final matrix is actually the same in both cases.\nAssuming awb->ccm->lut, before the move:\n\n   (ccm * pre_awb) * awb\n\nafter the move:\n\n   ccm * (pre_awb * awb)\n\nCurrently of course pre_awb is the identity. If I understand it correctly, you want\nit to be ccm * awb * pre_awb, that makes sense.\n\nWhat I've been trying to say is that the meaning of \"combinedMatrix\" changes\ndue to the move, to me that line of argumentation offers an easier to understand\nmotivation behind the change, but that may be just me.\n\nBut since there is no issue, I find it hard to know what should be the commit message\nand the potential \"fixes\" tags. If we assume a non-identity pre_awb, then the code has\nbeen wrong even before the earlier series because it only did (ccm * gains), ignoring\npre_awb completely. If we don't assume pre_awb, then I'd argue that it is the \"move commit\"\nthat is problematic.\n\nAnyways, I'll stop with the bike-shedding. Please compose the commit message as you see fit!\n\n\n> \n>>> Or I suppose both could be mentioned, or neither since this is a theoretical\n>>> issue at the moment.\n>>\n>> I don't know what's the exact policy, I'm fine with both removing it or\n>> keeping it.\n>>\n>>>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>>>> ---\n>>>>    src/ipa/simple/algorithms/awb.cpp | 2 +-\n>>>>    1 file changed, 1 insertion(+), 1 deletion(-)\n>>>> diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\n>>>> index 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>>>>      \tframeContext.gains.red = gains.r();\n>>>>    \tframeContext.gains.blue = gains.b();\n>","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 9531FBD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  3 Feb 2026 10:40:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 93D2062019;\n\tTue,  3 Feb 2026 11:40:21 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4F5B161FC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Feb 2026 11:40:20 +0100 (CET)","from [192.168.33.51] (185.221.142.123.nat.pool.zt.hu\n\t[185.221.142.123])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id F2766492;\n\tTue,  3 Feb 2026 11:39:38 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"dNw5mXIF\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1770115179;\n\tbh=1xPNUJZ+NvmanxpCNnsc+wFt4S3yqTUT8AhZiHCVy3U=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=dNw5mXIFFmCOBofbzE1pQVOlzc1TAafIOaoSdhYOkwwXBdIDIpRi4+s8DwsftSJLU\n\t55xPIkvD0JNNHSY6fB9vYYd8LUFLapdrY10jJINZqndxHi528RmMF/c/STItLSRcme\n\t89bFpLUe8B+v5tO3u2xMB6mX+3jVqjMah+herJTA=","Message-ID":"<1b2207a2-7a8d-4039-a3a5-5634d6ceb701@ideasonboard.com>","Date":"Tue, 3 Feb 2026 11:40:16 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20260202210225.65217-1-mzamazal@redhat.com>\n\t<7e8e0bfb-1162-4f8d-88b6-b73cf01108f6@ideasonboard.com>\n\t<85343i2meb.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<85y0la17j2.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<85y0la17j2.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>"}},{"id":38057,"web_url":"https://patchwork.libcamera.org/comment/38057/","msgid":"<85tsvy11l4.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2026-02-03T11:57:43","subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Barnabás Pőcze <barnabas.pocze@ideasonboard.com> writes:\n\n> 2026. 02. 03. 10:49 keltezéssel, Milan Zamazal írta:\n>> Milan Zamazal <mzamazal@redhat.com> writes:\n>> \n>>> Hi Barnabás,\n>>>\n>>> Barnabás Pőcze <barnabas.pocze@ideasonboard.com> writes:\n>>>\n>>>> 2026. 02. 02. 22:02 keltezéssel, Milan Zamazal írta:\n>>>>> The matrix multiplication in Awb is swapped: the gains should be applied\n>>>>> after combinedMatrix, i.e. on the left side.  The mistake happened when\n>>>>> `ccm' was replaced with combinedMatrix; while CCM must be applied after\n>>>>> gains, the gains must be applied after the combined matrix.\n>>>>> Since there is currently no algorithm modifying combinedMatrix before\n>>>>> Awb, combinedMatrix is an identity matrix there and the wrong order\n>>>>> doesn't influence the output at the moment.\n>>>>> Fixes: 5f3cdafe0fee (\"Introduce a general correction matrix\")\n>>>>\n>>>> Why not da0926bc4b2dc28599ee2000ee9fb375b38d4f9e (\"libcamera: ipa: simple: Apply gain matrix in awb\") ?\n>>>> I would argue the mistake happened while moving the multiplication?\n>>>\n>>> No, that commit didn't change anything about the bug, the wrong\n>>> multiplication\n>>>\n>>>    context.activeState.combinedMatrix * gainMatrix\n>>>\n>>> was used both before and after.  The commit just moved a piece of code,\n>>> which happened to contain a bug, from one place to another and there is\n>>> no error in the move itself.\n>> Ah, but the final matrix is different due to the move.\n>> OK, I'll adjust the commit message.\n>\n> Wait, sorry, I think the final matrix is actually the same in both cases.\n> Assuming awb->ccm->lut, before the move:\n>\n>   (ccm * pre_awb) * awb\n>\n> after the move:\n>\n>   ccm * (pre_awb * awb)\n\nOh yes, right.\n\n> Currently of course pre_awb is the identity. If I understand it correctly, you want\n> it to be ccm * awb * pre_awb, that makes sense.\n\nYes.\n\n> What I've been trying to say is that the meaning of \"combinedMatrix\" changes\n> due to the move, to me that line of argumentation offers an easier to understand\n> motivation behind the change, but that may be just me.\n>\n> But since there is no issue, I find it hard to know what should be the commit message\n> and the potential \"fixes\" tags. If we assume a non-identity pre_awb, then the code has\n> been wrong even before the earlier series because it only did (ccm * gains), ignoring\n> pre_awb completely. If we don't assume pre_awb, then I'd argue that it is the \"move commit\"\n> that is problematic.\n>\n> Anyways, I'll stop with the bike-shedding. Please compose the commit message as you see fit!\n\nOK, I changed the commit message a bit in v2 and dropped the Fixes tag.\nIf the maintainers want to have the tag, they can pick whichever one\nthey like.\n\n>> \n>>>> Or I suppose both could be mentioned, or neither since this is a theoretical\n>>>> issue at the moment.\n>>>\n>>> I don't know what's the exact policy, I'm fine with both removing it or\n>>> keeping it.\n>>>\n>>>>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>>>>> ---\n>>>>>    src/ipa/simple/algorithms/awb.cpp | 2 +-\n>>>>>    1 file changed, 1 insertion(+), 1 deletion(-)\n>>>>> diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\n>>>>> index 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>>>>>      \tframeContext.gains.red = gains.r();\n>>>>>    \tframeContext.gains.blue = gains.b();\n>>","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 04A58BD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  3 Feb 2026 11:57:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E9EAB62016;\n\tTue,  3 Feb 2026 12:57:50 +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 2720861A35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Feb 2026 12:57:49 +0100 (CET)","from mail-wm1-f69.google.com (mail-wm1-f69.google.com\n\t[209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-168-CREImxyDOWeFbTsqhunFAg-1; Tue, 03 Feb 2026 06:57:46 -0500","by mail-wm1-f69.google.com with SMTP id\n\t5b1f17b1804b1-4801d21c280so44984325e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 03 Feb 2026 03:57:46 -0800 (PST)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-4830516a0a0sm58130205e9.15.2026.02.03.03.57.43\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 03 Feb 2026 03:57:43 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"Mp58hRX5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1770119867;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=9j4cQRiTrc00supQwXpSJc7RkvNMfzyFVoF7KKXP1Ro=;\n\tb=Mp58hRX5mBHmNrmVLiZLpDwHeNuc0ZXuDz04oy/FFCqSJR/GUMsb7oDiTkMxQSgLh9B0Df\n\tnHArkBbk6+vkS5WEgMzXk6xwR715KaBwtHzuQnGTuzx9lUWLIlxhXYLvF22kvZ7YmawM3N\n\tjdIAdtT3i720tm9vEW+wEClcJv33FWw=","X-MC-Unique":"CREImxyDOWeFbTsqhunFAg-1","X-Mimecast-MFC-AGG-ID":"CREImxyDOWeFbTsqhunFAg_1770119865","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1770119865; x=1770724665;\n\th=content-transfer-encoding:mime-version:user-agent:message-id:date\n\t:references:in-reply-to:subject:cc:to:from:x-gm-gg\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=86fIE5ASYj4YEhcoT+cx7lG6qLvLHTbFemQ57PPe5Ew=;\n\tb=JUwQlf0tLYRIKK1Y9cpJvmzwi2HWEa/RN+/QDFQoKrPeVccVCftztiYNMyUrmXfVMe\n\tHyaZ/sIZ9AQbLmgf9XA2A1N1Byp2AbnPzy1Km6V5YeyxI2NKKUjulBYVQkzBsAoYbyOQ\n\tOrdp0xoJA46rW+aFnpGHlRc+Jd55qvp5tkye0Oq8ftDddITt4HcELm+bb3G1WTOwk6c3\n\tl/5c5fMhHZDMkfBc9mm8UoBG8+dIF1U7gqtgzS01PPdj8gw2voj3lUZllIOApkDSx1Zb\n\tO2x+xFtCfjiAMfVIasdDLxdxVEQ07vkpKezJMaWLjPMg5C2Rnl3UipHlD+yMOxh0Zmt6\n\tuQNw==","X-Gm-Message-State":"AOJu0YwUI5xHcEJgoGMWuEaufrACVUcDB2I3tOprGY5ZnRahYKiEvU7v\n\togAbFaj1GttHp/58ZCdaipF3GYSkzqwGgZtnkII8aYLIUF/Pth/oI1PvhHqpFKHghhWALQwpa7y\n\tHtYbBqjT+0wuqajuHsEh4GIADgmcwTWCiHgqSOD4rLvDx8SBAUMdLambQJLo1NsRCuchSJiErJn\n\tI=","X-Gm-Gg":"AZuq6aJZYyTXeni5L5TPY9yuqAjo7h3JgDdw+W6lELFz53xZbzK4lwAZ8Fv8kY0Epn0\n\t/DRRfADjGHo98RuMFXDHly3LTVroHy6iRvCx9JRCxck85msQn/KWp6APOJJz8gHNWrwkmHf6NU3\n\tRcrPKQ3QfjYKgMkwDIcR9efVuAOc4IOJKjt90AlHAuLgAdve7n1LSqf7HCQx7J61VyuNEs0HGuv\n\t9vkQnaS3VNnIYCwgaL/ceOa4bLLKfeOMQ+uaqPXfXAr4jWYG8FnXqnfV+TuFLVbOlFZ4hK7953N\n\tWRHbKcBWelBTSciAdPK9qBtjHnUZEw2XGHgszgEdejaEgYnkbGpt81JKEdzkHjeRVSb7s0a++qu\n\tpZeuIc46N9RFS82IIid93GvTaD50QAth9gxpT68p1Oo7W/5Z/9SiviIgK/O5TaNw=","X-Received":["by 2002:a05:600c:81c8:b0:479:2f95:5179 with SMTP id\n\t5b1f17b1804b1-482db467e7cmr199602575e9.15.1770119864957; \n\tTue, 03 Feb 2026 03:57:44 -0800 (PST)","by 2002:a05:600c:81c8:b0:479:2f95:5179 with SMTP id\n\t5b1f17b1804b1-482db467e7cmr199602275e9.15.1770119864494; \n\tTue, 03 Feb 2026 03:57:44 -0800 (PST)"],"From":"Milan Zamazal <mzamazal@redhat.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,  Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH] libcamera: ipa: simple: Fix multiplication order in Awb","In-Reply-To":"<1b2207a2-7a8d-4039-a3a5-5634d6ceb701@ideasonboard.com> (\n\t=?utf-8?b?IkJhcm5hYsOhcyBQxZFjemUiJ3M=?= message of \"Tue,\n\t3 Feb 2026  11:40:16 +0100\")","References":"<20260202210225.65217-1-mzamazal@redhat.com>\n\t<7e8e0bfb-1162-4f8d-88b6-b73cf01108f6@ideasonboard.com>\n\t<85343i2meb.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<85y0la17j2.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<1b2207a2-7a8d-4039-a3a5-5634d6ceb701@ideasonboard.com>","Date":"Tue, 03 Feb 2026 12:57:43 +0100","Message-ID":"<85tsvy11l4.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"IDmT2YyQMnIa0xbyZnrOZbE-YS6bSJMhABLNbqlIJGc_1770119865","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","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>"}}]