[{"id":38217,"web_url":"https://patchwork.libcamera.org/comment/38217/","msgid":"<858qcrawdt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2026-02-17T21:33:02","subject":"Re: [PATCH 3/5] software_isp: debayer_cpu: Group innerloop\n\tvariables together","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Hans,\n\nthank you for the patch.\n\nHans de Goede <johannes.goede@oss.qualcomm.com> writes:\n\n> Group variables used every pixel together, followed by variables used\n> every lines and then lastly variables only used every frame.\n>\n> The idea here is to have all the data used every pixel fit in as few\n> cachelines as possible.\n>\n> Benchmarking does not show any differerence before after, possibly\n> because most of the per pixel lookup tables where already grouped\n> together.\n\nThe struct layout may be indeed critical, IIRC I got ~10% penalty when I\nhad to switch the lookup table arrangement to fix wrong CCM\nmultiplication order.  Maybe there is a hidden opportunity for\nsignificant speedup somewhere.  But this is a different problem than\nwhat this patch solves.\n\nWith the typo below fixed:\n\nReviewed-by: Milan Zamazal <mzamazal@redhat.com>\n\n> Despite that this still seems like a good idea.\n>\n> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>\n> ---\n>  src/libcamera/software_isp/debayer_cpu.h | 13 ++++++++-----\n>  1 file changed, 8 insertions(+), 5 deletions(-)\n>\n> diff --git a/src/libcamera/software_isp/debayer_cpu.h b/src/libcamera/software_isp/debayer_cpu.h\n> index 800b018c..a54418dc 100644\n> --- a/src/libcamera/software_isp/debayer_cpu.h\n> +++ b/src/libcamera/software_isp/debayer_cpu.h\n> @@ -135,6 +135,7 @@ private:\n>  \t};\n>  \tusing LookupTable = std::array<uint8_t, kRGBLookupSize>;\n>  \tusing CcmLookupTable = std::array<CcmColumn, kRGBLookupSize>;\n> +\t/* Variables used every pixel */\n>  \tLookupTable red_;\n>  \tLookupTable green_;\n>  \tLookupTable blue_;\n> @@ -143,24 +144,26 @@ private:\n>  \tCcmLookupTable blueCcm_;\n>  \tstd::array<double, kGammaLookupSize> gammaTable_;\n>  \tLookupTable gammaLut_;\n> -\tbool ccmEnabled_;\n> -\tDebayerParams params_;\n> -\tSwIspStats statsBuffer_;\n> +\tRectangle window_;\n>  \n> +\t/* Variables used every line */\n> +\tSwIspStats statsBuffer_;\n>  \tdebayerFn debayer0_;\n>  \tdebayerFn debayer1_;\n>  \tdebayerFn debayer2_;\n>  \tdebayerFn debayer3_;\n> -\tRectangle window_;\n>  \tstd::unique_ptr<SwStatsCpu> stats_;\n>  \tunsigned int lineBufferLength_;\n>  \tunsigned int lineBufferPadding_;\n>  \tunsigned int xShift_; /* Offset of 0/1 applied to window_.x */\n>  \tbool enableInputMemcpy_;\n> -\n>  \tstatic constexpr unsigned int kMaxThreads = 4;\n>  \tstruct DebayerCpuThreadData threadData_[kMaxThreads];\n> +\n> +\t/* variables used every frame */\n\ns/variables/Variables/\n\n>  \tunsigned int threadCount_;\n> +\tbool ccmEnabled_;\n> +\tDebayerParams params_;\n>  };\n>  \n>  } /* namespace libcamera */","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 AFE71C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 Feb 2026 21:33:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D849262210;\n\tTue, 17 Feb 2026 22:33:09 +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 96A3161FA0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Feb 2026 22:33:08 +0100 (CET)","from mail-wm1-f70.google.com (mail-wm1-f70.google.com\n\t[209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-556-RfcW3qKpOie69Fd_VZNTiw-1; Tue, 17 Feb 2026 16:33:05 -0500","by mail-wm1-f70.google.com with SMTP id\n\t5b1f17b1804b1-48079ae1001so38519905e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Feb 2026 13:33:05 -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-4837a5d562esm247576065e9.15.2026.02.17.13.33.02\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 17 Feb 2026 13:33:03 -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=\"Ff7EWTZN\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1771363987;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=V8QY9H4TI1lQ3Meb23DbkPpfAvkO6WamoVTGBMGa99s=;\n\tb=Ff7EWTZN2p7XNkw+LL/Q1fHDIiG2zYIz5JD6eGA6jyxzn1mdZPogTjyyt+m+foiADjJ+63\n\tdgiVG0SStEp4n8c3XoJNT5W/eeDNV5NJijoevMrdW+a7meo1+ETlSYP69Qx9zPICEU1S8I\n\t0/KqfDQZfvbGZhvYwrCx1oPtKOpYr+I=","X-MC-Unique":"RfcW3qKpOie69Fd_VZNTiw-1","X-Mimecast-MFC-AGG-ID":"RfcW3qKpOie69Fd_VZNTiw_1771363984","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1771363984; x=1771968784;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject\n\t:date:message-id:reply-to;\n\tbh=V8QY9H4TI1lQ3Meb23DbkPpfAvkO6WamoVTGBMGa99s=;\n\tb=BE0MRIB9wjKsglNiNXK74c/x2F0Neh9Ob/mCPQJVwiseyk9cCRHkKSyLpSmauKoKE1\n\t5R5EtGBFI49T1M1zTqe3TV+O2kdYjuP5aMhFjOVXxethKVEvM5NgSC8+YUnckmNGzxFr\n\t8mZdJryu8OhKGfOlqa+Yyb2fB2HTwoSnDVltdUb9LQ1+01hQ314b/gt8k4bSX+dlk5ch\n\t0DrvbKODveFj+DyNSdFoWkxgymMnmTAr6GcvhU8edtlUvJZYEb8KIS5gc8WktF9r9AfQ\n\tzojfwEUs91tTyo2bVIH+A/C6mPnZAZsW117y/FosACo3VbYlH3t8B0XvhV7zS4IztKAb\n\tFQPA==","X-Gm-Message-State":"AOJu0YwIfkiDE3lcIxr7DCJ3uvhw4wBoFDihCxX+Q8A9GZ7GalO2Dbik\n\tE74m3Ub/Lokb6qKudtWWHMssg2VUB2jDl+7nwHi9UJa6VTsEhcOhztH6RnMq5cM1Hwi4dAYemW6\n\tP8hhtTXHHKCbJRQOGANaCTrCo8x1+cGBg3lQJtJCsHasvVK1Ifk8bnZ4TAomnVHwV6MEA7zCbWd\n\t6J/zMVya2pSGFSRXKbupeofIjpGRB33YuwqrGlgRTQvfxzYg723BcKwysug6c=","X-Gm-Gg":"AZuq6aKxISeF6dZ+XbD6/ncEEasGi2JZZrc+UBPzNYmjSzOMqd19ny8drGvdnRuT14C\n\tirQo2XhgrSE6nUrXKSXdEIZWTXavYZAuKrMLHZBQ/0JHAtO96XO80OLINTxyFnabBPhhrnGrDeQ\n\tp8OQWoPNgQavOHSdncGwtvw2iTevTC9laU6BeHEedMluIRapcTbFdI6PTAXGazEgmzTTJgYYp6H\n\tT80D8L3BifT7a/4sZfieNSp9nTN1dfjy1c/mkzrqV9Bg4GaSkohODqnTRxMxlfbsm9Rb5KMWQ0+\n\tBDY/RwRq+QK/amVFeNW4EcuBp8gvx/vcN6cuKXVPAdcUH4teB8lteb8vs6pHV1sfllJELdqBntn\n\tRmUJRJtNMUkjIDhUfK0uIlJm3d78pIO6Tr45VT8fIWqhpla73ikcL+hl9JQKHaqVjZB12tEzpd+\n\tA=","X-Received":["by 2002:a05:600c:609a:b0:483:7020:864 with SMTP id\n\t5b1f17b1804b1-48379c178eamr223138545e9.25.1771363984056; \n\tTue, 17 Feb 2026 13:33:04 -0800 (PST)","by 2002:a05:600c:609a:b0:483:7020:864 with SMTP id\n\t5b1f17b1804b1-48379c178eamr223138045e9.25.1771363983559; \n\tTue, 17 Feb 2026 13:33:03 -0800 (PST)"],"From":"Milan Zamazal <mzamazal@redhat.com>","To":"Hans de Goede <johannes.goede@oss.qualcomm.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 3/5] software_isp: debayer_cpu: Group innerloop\n\tvariables together","In-Reply-To":"<20260216190204.106922-4-johannes.goede@oss.qualcomm.com> (Hans\n\tde Goede's message of \"Mon, 16 Feb 2026 20:02:02 +0100\")","References":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>\n\t<20260216190204.106922-4-johannes.goede@oss.qualcomm.com>","Date":"Tue, 17 Feb 2026 22:33:02 +0100","Message-ID":"<858qcrawdt.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":"Bn9PoDKPGOuOacU-LoWV3CevFFZxNx1WpkpBYt70Gjw_1771363984","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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":38256,"web_url":"https://patchwork.libcamera.org/comment/38256/","msgid":"<20260219141636.GR520738@killaraus.ideasonboard.com>","date":"2026-02-19T14:16:36","subject":"Re: [PATCH 3/5] software_isp: debayer_cpu: Group innerloop variables\n\ttogether","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Feb 16, 2026 at 08:02:02PM +0100, Hans de Goede wrote:\n> Group variables used every pixel together, followed by variables used\n> every lines and then lastly variables only used every frame.\n> \n> The idea here is to have all the data used every pixel fit in as few\n> cachelines as possible.\n> \n> Benchmarking does not show any differerence before after, possibly\n> because most of the per pixel lookup tables where already grouped\n> together.\n> \n> Despite that this still seems like a good idea.\n> \n> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>\n> ---\n>  src/libcamera/software_isp/debayer_cpu.h | 13 ++++++++-----\n>  1 file changed, 8 insertions(+), 5 deletions(-)\n> \n> diff --git a/src/libcamera/software_isp/debayer_cpu.h b/src/libcamera/software_isp/debayer_cpu.h\n> index 800b018c..a54418dc 100644\n> --- a/src/libcamera/software_isp/debayer_cpu.h\n> +++ b/src/libcamera/software_isp/debayer_cpu.h\n> @@ -135,6 +135,7 @@ private:\n>  \t};\n>  \tusing LookupTable = std::array<uint8_t, kRGBLookupSize>;\n>  \tusing CcmLookupTable = std::array<CcmColumn, kRGBLookupSize>;\n> +\t/* Variables used every pixel */\n>  \tLookupTable red_;\n>  \tLookupTable green_;\n>  \tLookupTable blue_;\n> @@ -143,24 +144,26 @@ private:\n>  \tCcmLookupTable blueCcm_;\n>  \tstd::array<double, kGammaLookupSize> gammaTable_;\n>  \tLookupTable gammaLut_;\n> -\tbool ccmEnabled_;\n> -\tDebayerParams params_;\n> -\tSwIspStats statsBuffer_;\n> +\tRectangle window_;\n>  \n> +\t/* Variables used every line */\n> +\tSwIspStats statsBuffer_;\n>  \tdebayerFn debayer0_;\n>  \tdebayerFn debayer1_;\n>  \tdebayerFn debayer2_;\n>  \tdebayerFn debayer3_;\n> -\tRectangle window_;\n>  \tstd::unique_ptr<SwStatsCpu> stats_;\n>  \tunsigned int lineBufferLength_;\n>  \tunsigned int lineBufferPadding_;\n>  \tunsigned int xShift_; /* Offset of 0/1 applied to window_.x */\n>  \tbool enableInputMemcpy_;\n> -\n>  \tstatic constexpr unsigned int kMaxThreads = 4;\n>  \tstruct DebayerCpuThreadData threadData_[kMaxThreads];\n> +\n> +\t/* variables used every frame */\n>  \tunsigned int threadCount_;\n> +\tbool ccmEnabled_;\n> +\tDebayerParams params_;\n\nCould you reverse the order and start with the per-frame, then per-line\nand finally per-pixel variables ? That would make a more logical read\norder.\n\n>  };\n>  \n>  } /* namespace libcamera */","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 11585C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 19 Feb 2026 14:16:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BE9326224D;\n\tThu, 19 Feb 2026 15:16:41 +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 703BB620C9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 19 Feb 2026 15:16:40 +0100 (CET)","from killaraus.ideasonboard.com (unknown [83.245.237.175])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 1B3154D3;\n\tThu, 19 Feb 2026 15:15:47 +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=\"B/WGoaWY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1771510547;\n\tbh=PpDFU2joW1O0XhzyNo+yYO5KyzPKu9utwn8jnM6WOr4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=B/WGoaWYllwjBqzZm2J4xYBZVYTsxYmmQYUCbdYY8Eqe93LaSZNdhPkXZgOs+hGvQ\n\tVM1HB8CFcqkeQoKnGFtSV1+3Y4JhBBRCUA3HaZR5EXpzv94Z1eVvj6kw98OfU2rIES\n\tdyyRO2EQbTgXcncDS1zQjkncRAewk9HkaC1JTdMo=","Date":"Thu, 19 Feb 2026 15:16:36 +0100","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hans de Goede <johannes.goede@oss.qualcomm.com>","Cc":"libcamera-devel@lists.libcamera.org, Milan Zamazal <mzamazal@redhat.com>","Subject":"Re: [PATCH 3/5] software_isp: debayer_cpu: Group innerloop variables\n\ttogether","Message-ID":"<20260219141636.GR520738@killaraus.ideasonboard.com>","References":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>\n\t<20260216190204.106922-4-johannes.goede@oss.qualcomm.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260216190204.106922-4-johannes.goede@oss.qualcomm.com>","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":38275,"web_url":"https://patchwork.libcamera.org/comment/38275/","msgid":"<dd9d3c85-bcb0-4a09-ba7e-7ac6ca40bd53@oss.qualcomm.com>","date":"2026-02-23T15:36:35","subject":"Re: [PATCH 3/5] software_isp: debayer_cpu: Group innerloop variables\n\ttogether","submitter":{"id":242,"url":"https://patchwork.libcamera.org/api/people/242/","name":"Hans de Goede","email":"johannes.goede@oss.qualcomm.com"},"content":"Hi,\n\nOn 17-Feb-26 10:33 PM, Milan Zamazal wrote:\n> Hi Hans,\n> \n> thank you for the patch.\n> \n> Hans de Goede <johannes.goede@oss.qualcomm.com> writes:\n> \n>> Group variables used every pixel together, followed by variables used\n>> every lines and then lastly variables only used every frame.\n>>\n>> The idea here is to have all the data used every pixel fit in as few\n>> cachelines as possible.\n>>\n>> Benchmarking does not show any differerence before after, possibly\n>> because most of the per pixel lookup tables where already grouped\n>> together.\n> \n> The struct layout may be indeed critical, IIRC I got ~10% penalty when I\n> had to switch the lookup table arrangement to fix wrong CCM\n> multiplication order.  Maybe there is a hidden opportunity for\n> significant speedup somewhere.  But this is a different problem than\n> what this patch solves.\n> \n> With the typo below fixed:\n> \n> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>\n\nThank you for the review.\n\nAfter the refactoring in v2, there is very little left to move here,\nso I've dropped this patch for the upcoming v2 series.\n\nRegards,\n\nHans","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 B07B8BE175\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Feb 2026 15:36:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 67FA762287;\n\tMon, 23 Feb 2026 16:36:41 +0100 (CET)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n\t[205.220.180.131])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A593A621CE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Feb 2026 16:36:39 +0100 (CET)","from pps.filterd (m0279868.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n\t61NAX39o3698602 for <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Feb 2026 15:36:38 GMT","from mail-qk1-f200.google.com (mail-qk1-f200.google.com\n\t[209.85.222.200])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cgn818wqg-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Feb 2026 15:36:38 +0000 (GMT)","by mail-qk1-f200.google.com with SMTP id\n\taf79cd13be357-8cb3b0d938dso4699396485a.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Feb 2026 07:36:38 -0800 (PST)","from [10.40.99.10] ([78.108.130.194])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-b9084cc4039sm331458466b.30.2026.02.23.07.36.36\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tMon, 23 Feb 2026 07:36:36 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=qualcomm.com header.i=@qualcomm.com\n\theader.b=\"ERCQHZ9+\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n\theader.b=\"gbIFng4w\"; dkim-atps=neutral","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\tHbvfYt+xukjq7Ur/00jQl/Sgi5VZzD0nTHH/oiLS4/4=; b=ERCQHZ9+42F56F2q\n\tvIfsF+mn2C21lhAt0H6tnV+N5LoTMa6HUIL0huA214++5V6ehUYn++eBF33laOSR\n\tKZiFN25Er41v9YSmrFKZQaxYgy7Uc/J7JG8MSrGej73CFHkyd/7Yd9Z9Zyj/74qu\n\tcTcwRO8LkVRKR0rrHSdzRGNc9vNKg92HO8Uoxuwacc8mMKf4vRYA0m4heiC+qal7\n\tFykioztsnGCrFz1sM0zpgO+u992YbPAuXRKcKYAF1Dn4QiImVDrp44Cq2gJbIMO3\n\tbD3xBKZitZTli38qpOTtl03G/WETNJ57Mi40eUGOEFIeN2WIfQ9+utewkwQXTvBQ\n\tTbaj8w==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=oss.qualcomm.com; s=google; t=1771860997; x=1772465797;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:content-language:references\n\t:cc:to:subject:from:user-agent:mime-version:date:message-id:from:to\n\t:cc:subject:date:message-id:reply-to;\n\tbh=HbvfYt+xukjq7Ur/00jQl/Sgi5VZzD0nTHH/oiLS4/4=;\n\tb=gbIFng4wqKosGwHiLLam5YFBVl9wGhqp8ZZJw68rbEJj6jnAInQ40HJ7Au7CADh9H+\n\twWIpVxIxbMBu40oGuioEajqZXEPIRrIyZJn1GcgFYK46RlLzCqMsx89tzCPfD/dwxodW\n\twdfQKBTPxD61rSL2THECB9chRav8sihCXXVyvlVl8fOieMRkMlKyoTGeISv6rLcVzYTT\n\tq/OT8By76I8RTCb+tYIOphptuYLgvmgrzFxCgCkvwR/9fudQSXlrUE9BJlNgVeFJCdlW\n\t08wcV3WUhAXm4avZvpDS9bmpEQCcq8T3s0S1E28X+iCutvc/ybr9Te8eLeGjzYbPe9jR\n\teSZA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1771860997; x=1772465797;\n\th=content-transfer-encoding:in-reply-to:content-language:references\n\t:cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=HbvfYt+xukjq7Ur/00jQl/Sgi5VZzD0nTHH/oiLS4/4=;\n\tb=t88hCqDnQ4rxGuBuLG419gCl6g0yNFfbmJv+4PBUW1veJqwWbB48z0ie6cY+iR461m\n\tmaGy26LSb+jNFze053VyP3H7OHellS3PaPeZ6+tXWpzCLOEGBLga6S4G/7u3lI/HjtiQ\n\tHw0JItSVv7sODvnKW/npdhINXvpNQWlT5ZPWpkUePI3+n7wFpgf/Z6NM32KurQSvA6Rx\n\t6JXFciiAWV8EIvPJqJYs32s07uZwOgAu5P/aEB8dD6PW+9Sns2kbdTrO3h0fUgkyTbga\n\tWy9njQqFj2j69iuhstzGKyOPbtOVjaNxDWYOC4/d2xkhpAnjN8ZlMAqqPybEwh3oYykx\n\tjHBg==","X-Gm-Message-State":"AOJu0YyJ/BY7pJwTjCN1Y5oeZxznUd96bO3HlSjXQJEH6WdteN4o/n9/\n\ti1cjoAg4QZTa5HX8gqkvg0flG8Z/0KklOqFOdg6EUdj2frq/Ox9rAoP2ciTWXcLCceVxmoc6c3J\n\tImAAOGlFdNXn2HeezYznWj674NnoRnysrYWgkSDYv9b+Lfdt8oC8hx02nNkcN/onIv/iEnIUOsU\n\tov7HIh5aVM","X-Gm-Gg":"AZuq6aKKG2eR83kUtLHCnNdOV0bn31gaCi1Xs5eVDRW8HDA52tOhsjjGXic8vy17Ocn\n\tNcYRLV+38IEPwqrZxf3rBsIOtgF3GJ4s0GA6zbNltroRbkGo6juHKqFKtehIl4HKFp204PBiFd+\n\tJj1O9ciMHjauWngbYHmKrKzMTDG/9MGLxKYgnGc1Mce0fZJRQtbqWtNvRo8NmsNLMme0EF9p5nX\n\tv00KxojlMkbn6zxBc0OgXOiu/8fNE7D8iluLcc6x4E4W1YdSsYJOYqx4+ST2ilKR4gH6ebMfJQt\n\tdivA05UZweol9MukYGOtzKdN9R11zrgItW5amScKPj5+60EZjqQOu/iTsH67XR0oDw6MxEo7AZA\n\t6JO/9PK8MAeB0adUBESZEb9n9uswuIJB+bbSX4L5A","X-Received":["by 2002:a05:620a:2985:b0:8c5:e166:fa14 with SMTP id\n\taf79cd13be357-8cb8ca8dce2mr1178795585a.73.1771860997426; \n\tMon, 23 Feb 2026 07:36:37 -0800 (PST)","by 2002:a05:620a:2985:b0:8c5:e166:fa14 with SMTP id\n\taf79cd13be357-8cb8ca8dce2mr1178790385a.73.1771860996899; \n\tMon, 23 Feb 2026 07:36:36 -0800 (PST)"],"Message-ID":"<dd9d3c85-bcb0-4a09-ba7e-7ac6ca40bd53@oss.qualcomm.com>","Date":"Mon, 23 Feb 2026 16:36:35 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","From":"Hans de Goede <johannes.goede@oss.qualcomm.com>","Subject":"Re: [PATCH 3/5] software_isp: debayer_cpu: Group innerloop variables\n\ttogether","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>\n\t<20260216190204.106922-4-johannes.goede@oss.qualcomm.com>\n\t<858qcrawdt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Language":"en-US, nl","In-Reply-To":"<858qcrawdt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Proofpoint-GUID":"r3j9Ln8LmB6Y_I_a_WUoZYeBhu-_NTVx","X-Proofpoint-ORIG-GUID":"r3j9Ln8LmB6Y_I_a_WUoZYeBhu-_NTVx","X-Authority-Analysis":"v=2.4 cv=CbsFJbrl c=1 sm=1 tr=0 ts=699c7406 cx=c_pps\n\ta=hnmNkyzTK/kJ09Xio7VxxA==:117 a=rrvG0T/C2D967D07Ol03YQ==:17\n\ta=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10\n\ta=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n\ta=ZpdpYltYx_vBUK5n70dp:22\n\ta=EUspDBNiAAAA:8 a=20KFwNOVAAAA:8 a=UtAMqG8NTIrGJX0EAQ8A:9\n\ta=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwMjIzMDEzMyBTYWx0ZWRfXwv8jeqmo9/96\n\t48uZCvQpkxffsJcUZqL8xeIMPwI0NzIj7Ip3SQ+MKe+xxyMBCQVtVg8+noTWmfrMMrjAGXpV+Kx\n\tQto9+5nWQGhWBMcrRQbQkfZUrlUnKAKIdAZgX8LFY9/PEqMciS98H2l7hwkBQaxcInuu47az/Zy\n\tPJXW7CcieG9Wl4bdqCsI+/Ab2atlVJd+q07d+OkIWvv5xZFVa1FsJbmcHN9Ri67HHCJLc97U7XQ\n\tWRhJfva35nSo1CtGa38YXGrQ0KOvew3SA2lml8rHlLjQUvjvNhn+/EAGQR1f6bN/4H5Maht7gC6\n\tNJTTO7AZENuNx144coKopJG5SaO2TfSZPwJUEiyhtDNbCbBxSetk38+5u1yoU92tzFzzqTEVvuV\n\tRSVDwYFMEQV1TlcQkgGf3qbpoJmfdd00fAsP/0mT8oAfhn0dsVNA+JXwv9u/aw4ln7nLpsA5MRo\n\tw6kxq9Yx+nyTTgf5ZGg==","X-Proofpoint-Virus-Version":"vendor=baseguard\n\tengine=ICAP:2.0.293, Aquarius:18.0.1121, Hydra:6.1.51,\n\tFMLib:17.12.100.49\n\tdefinitions=2026-02-23_03,2026-02-23_03,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tlowpriorityscore=0 adultscore=0 impostorscore=0 priorityscore=1501\n\tsuspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015\n\tbulkscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n\troute=outbound\n\tadjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000\n\tdefinitions=main-2602230133","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>"}}]