[{"id":38208,"web_url":"https://patchwork.libcamera.org/comment/38208/","msgid":"<177131770050.1178617.13545189964232308183@ping.linuxembedded.co.uk>","date":"2026-02-17T08:41:40","subject":"Re: [PATCH 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Hans,\n\nQuoting Hans de Goede (2026-02-16 19:01:59)\n> Hi All,\n> \n> The QCM2290 SoC used on the Arduino Uno-Q seems to have a very weak GPU(1),\n> so weak that it is barely faster then a single CPU core.\n> \n> This has made me code-up the long envisioned multi-threading support\n> for the CPU softISP :)\n> \n> Benchmark results for the Uno-Q + IMX219 running at 3280x2464 -> 3272x2464:\n\nI'm afraid I think there are CI failures in this branch:\n\nhttps://gitlab.freedesktop.org/camera/libcamera/-/jobs/93408936#L538\n\n> \n> 1 thread :  147ms / frame, ~6.5  fps\n> 2 threads:   81ms / frame, ~12   fps\n> 3 threads:   66ms / frame, ~14.5 fps\n> GPU:        130ms / frame, ~7,5  fps\n> GPU 0-copy: 110ms / frame, ~9.5  fps (requires pipeline + camss hacks)\n> GPU lite:    85ms / frame, ~12   fps (CCM, contrast and gamma disabled)\n> \n> Regards,\n> \n> Hans\n> \n> 1) If the GPU really is this weak needs to be investigated more\n> \n> Hans de Goede (5):\n>   software_isp: swstats_cpu: Move accumulator storage out of the class\n>   software_isp: debayer_cpu: Add per render thread data\n>   software_isp: debayer_cpu: Group innerloop variables together\n>   software_isp: debayer_cpu: Select process inner loop by function\n>     pointer\n>   software_isp: debayer_cpu: Add multi-threading support\n> \n>  .../internal/software_isp/swstats_cpu.h       |  29 ++--\n>  src/libcamera/software_isp/debayer_cpu.cpp    | 131 ++++++++++++------\n>  src/libcamera/software_isp/debayer_cpu.h      |  44 ++++--\n>  src/libcamera/software_isp/swstats_cpu.cpp    |  65 ++++++---\n>  4 files changed, 180 insertions(+), 89 deletions(-)\n> \n> -- \n> 2.52.0\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 32543C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 Feb 2026 08:41:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5763162210;\n\tTue, 17 Feb 2026 09:41:45 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4CD42620C9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Feb 2026 09:41:43 +0100 (CET)","from monstersaurus.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id ACEDB161;\n\tTue, 17 Feb 2026 09:40:51 +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=\"rnzPJJ1n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1771317651;\n\tbh=mgwFPBw9bvbK0mbkFp6BKDvzArTsXHCka8EQcAMELhI=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=rnzPJJ1nqi9AgC/fPNnoSAieHQUpnHJRXrwZ6k4MWaYBpVQ4zVgg10UOoZKYMfR5r\n\tKSZC3waH2a1zlLSsEMw8kUeM2muVsKt4HO6d0l7hCbl1iNuFKoT8miolquqHYUaiR5\n\tRoH3lV7jbp8DJAY3LS5sh2KDO13cwRZ8xjWrthhU=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>","References":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>","Subject":"Re: [PATCH 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Hans de Goede <johannes.goede@oss.qualcomm.com>","To":"Hans de Goede <johannes.goede@oss.qualcomm.com>,\n\tMilan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","Date":"Tue, 17 Feb 2026 08:41:40 +0000","Message-ID":"<177131770050.1178617.13545189964232308183@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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":38219,"web_url":"https://patchwork.libcamera.org/comment/38219/","msgid":"<85y0kr9gk9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2026-02-17T22:00:06","subject":"Re: [PATCH 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hans de Goede <johannes.goede@oss.qualcomm.com> writes:\n\n> Hi All,\n>\n> The QCM2290 SoC used on the Arduino Uno-Q seems to have a very weak GPU(1),\n> so weak that it is barely faster then a single CPU core.\n>\n> This has made me code-up the long envisioned multi-threading support\n> for the CPU softISP :)\n\nReason to not drop CPU ISP in future?\n\n> Benchmark results for the Uno-Q + IMX219 running at 3280x2464 -> 3272x2464:\n>\n> 1 thread :  147ms / frame, ~6.5  fps\n> 2 threads:   81ms / frame, ~12   fps\n> 3 threads:   66ms / frame, ~14.5 fps\n> GPU:        130ms / frame, ~7,5  fps\n> GPU 0-copy: 110ms / frame, ~9.5  fps (requires pipeline + camss hacks)\n> GPU lite:    85ms / frame, ~12   fps (CCM, contrast and gamma disabled)\n\nThe CPU measurements are with or without CCM?\n\n> Regards,\n>\n> Hans\n>\n> 1) If the GPU really is this weak needs to be investigated more\n>\n> Hans de Goede (5):\n>   software_isp: swstats_cpu: Move accumulator storage out of the class\n>   software_isp: debayer_cpu: Add per render thread data\n>   software_isp: debayer_cpu: Group innerloop variables together\n>   software_isp: debayer_cpu: Select process inner loop by function\n>     pointer\n>   software_isp: debayer_cpu: Add multi-threading support\n>\n>  .../internal/software_isp/swstats_cpu.h       |  29 ++--\n>  src/libcamera/software_isp/debayer_cpu.cpp    | 131 ++++++++++++------\n>  src/libcamera/software_isp/debayer_cpu.h      |  44 ++++--\n>  src/libcamera/software_isp/swstats_cpu.cpp    |  65 ++++++---\n>  4 files changed, 180 insertions(+), 89 deletions(-)","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 1DD4BC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 Feb 2026 22:00:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4EC4F62215;\n\tTue, 17 Feb 2026 23:00:14 +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 2470661FA0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Feb 2026 23:00:13 +0100 (CET)","from mail-wr1-f71.google.com (mail-wr1-f71.google.com\n\t[209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-13-fc9UuLk7PjG10KGI8bI61Q-1; Tue, 17 Feb 2026 17:00:10 -0500","by mail-wr1-f71.google.com with SMTP id\n\tffacd0b85a97d-435a11575ecso4505865f8f.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Feb 2026 14:00:09 -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-43796abd259sm39559140f8f.24.2026.02.17.14.00.07\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 17 Feb 2026 14:00:07 -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=\"YeDqKgHy\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1771365611;\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=PTDaNpg8iKxLX9rBM/XDdN9ZIcNYACSRtRRJgCatuNk=;\n\tb=YeDqKgHylhK2SQevVrRhkAIjOlRH0NG8NWOdb2O5DaHhm4qOLHaWRoUZDn9HLthk/XGmzC\n\tMGm7xSHtfTWyYC9wKYMz3me2zaemynKglySKPlkRdhMZiPx3zmG3xffl3bvriR3twx4zZM\n\tAxv24rkihA2wwvL5L7rbodqH+vtE0jA=","X-MC-Unique":"fc9UuLk7PjG10KGI8bI61Q-1","X-Mimecast-MFC-AGG-ID":"fc9UuLk7PjG10KGI8bI61Q_1771365609","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1771365608; x=1771970408;\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=PTDaNpg8iKxLX9rBM/XDdN9ZIcNYACSRtRRJgCatuNk=;\n\tb=JBniQvFINGzeRNBINlBLQSh3WVc6gPBw/LCrWHy8/yy/1WXKuoYkcsTvoG4/6qYKQ7\n\tYQgAJYsKt5cU3zI61QLgUAAo9oEgBi/GB9LpEnHyc7F5d+foJX1ktxqHnlayZXNkoQPE\n\tpq8apB2Fb4cRT32U4Zr4izWVGBZGVeskDD2QjGN2MfHzfUSN3++Ov/UDFJv3TZPLtDVq\n\tAsPgtCumFyqm1Fma9orXjoy9FRDAycDvlb/lFo3d/oKhKrpx5vLXLObwkxI3wI4obQzu\n\tiwQOc6LKX12e9B5xSeMygKFcnLW+bhyUKo+zVpgfaiCiPojZmXwlP24YBevK28tB+zRo\n\tS00w==","X-Gm-Message-State":"AOJu0Yz76ObrTB29/iwc/DF1cLsbfuL7RVipyeYtWSxIyg0gmT0asD1I\n\taJJTUbnzOQ3yCVgYjMLvLy6jfg8BGYp64nH8JUYIz32PQnH/9q+mp6TaoB6MFGD0U38YOUdN1FN\n\t1WjNcMJjEEzjyhmZNFnz9O4+Pt84yrZE+QzH1N9SzyfF/VoeoDJpcpw9SNTqFFmYa+T8Q5Zgmdc\n\tToXakE6CDULKNXs4iJwxigTwKXLB6nS/GcD+7a2/RtwXDdJPSFOHhtf0b67Zk=","X-Gm-Gg":"AZuq6aKwJVRyGbH8We4iT6MicO3ayvAQjGBO1EsaAO4P1H0oPw74ga8DSXxlrW4WLY1\n\tOJ0daVV3+eKdod/U9SPtzUqQqP/SC1b0zRRT4QSc/gP9XEcdA7VJT9JnTxMnuaoARt9aWo2fpwZ\n\t+qbowETtLLKGPQJAF8GTZCH1iE2pqVLpKE8R9gpa5S1QrRFuAjFTtHZ51v6XYK/YQ0PTG1Z5e7b\n\tXD3kxarvszBqiK8ND97DEnOVRmA/c3mcfxedS/QjlUIP916iTF7SIpwR3c7vI1tlWhZNoGVt182\n\tccMCfpC8lMcwbfo5FQbx5WOdStaOQrhkhgI8d5UjZldCB18wkL+7aXy25lUXdpBtUOqFwe4v/4a\n\tqZsF2Zre79h90ojL6D7uQChMocnE5Q1W/hGv4teQ3iTAzNQEawao7IoDyWeEJvg1AKhNy8NjhHR\n\tE=","X-Received":["by 2002:a05:6000:2087:b0:437:6906:822f with SMTP id\n\tffacd0b85a97d-437978e0855mr29932652f8f.26.1771365608314; \n\tTue, 17 Feb 2026 14:00:08 -0800 (PST)","by 2002:a05:6000:2087:b0:437:6906:822f with SMTP id\n\tffacd0b85a97d-437978e0855mr29932604f8f.26.1771365607766; \n\tTue, 17 Feb 2026 14:00:07 -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 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","In-Reply-To":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com> (Hans\n\tde Goede's message of \"Mon, 16 Feb 2026 20:01:59 +0100\")","References":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>","Date":"Tue, 17 Feb 2026 23:00:06 +0100","Message-ID":"<85y0kr9gk9.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":"KJLVdT4NIZg7hwMbF-Yffa4A9534B5c_m1B_th9i4T0_1771365609","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":38253,"web_url":"https://patchwork.libcamera.org/comment/38253/","msgid":"<20260219141253.GP520738@killaraus.ideasonboard.com>","date":"2026-02-19T14:12:53","subject":"Re: [PATCH 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Feb 17, 2026 at 11:00:06PM +0100, Milan Zamazal wrote:\n> Hans de Goede writes:\n> \n> > Hi All,\n> >\n> > The QCM2290 SoC used on the Arduino Uno-Q seems to have a very weak GPU(1),\n> > so weak that it is barely faster then a single CPU core.\n> >\n> > This has made me code-up the long envisioned multi-threading support\n> > for the CPU softISP :)\n> \n> Reason to not drop CPU ISP in future?\n\nNote that I still think the CPU implementation should evolve to perform\nthe same computation as the GPU implementation, which will include LSC\nand other algorithms. It will therefore slow down.\n\nThe right solution to this problem is to support the hardware ISP\nincluded in the QCM2290 :-)\n\n> > Benchmark results for the Uno-Q + IMX219 running at 3280x2464 -> 3272x2464:\n> >\n> > 1 thread :  147ms / frame, ~6.5  fps\n> > 2 threads:   81ms / frame, ~12   fps\n> > 3 threads:   66ms / frame, ~14.5 fps\n> > GPU:        130ms / frame, ~7,5  fps\n> > GPU 0-copy: 110ms / frame, ~9.5  fps (requires pipeline + camss hacks)\n> > GPU lite:    85ms / frame, ~12   fps (CCM, contrast and gamma disabled)\n> \n> The CPU measurements are with or without CCM?\n> \n> > Regards,\n> >\n> > Hans\n> >\n> > 1) If the GPU really is this weak needs to be investigated more\n> >\n> > Hans de Goede (5):\n> >   software_isp: swstats_cpu: Move accumulator storage out of the class\n> >   software_isp: debayer_cpu: Add per render thread data\n> >   software_isp: debayer_cpu: Group innerloop variables together\n> >   software_isp: debayer_cpu: Select process inner loop by function\n> >     pointer\n> >   software_isp: debayer_cpu: Add multi-threading support\n> >\n> >  .../internal/software_isp/swstats_cpu.h       |  29 ++--\n> >  src/libcamera/software_isp/debayer_cpu.cpp    | 131 ++++++++++++------\n> >  src/libcamera/software_isp/debayer_cpu.h      |  44 ++++--\n> >  src/libcamera/software_isp/swstats_cpu.cpp    |  65 ++++++---\n> >  4 files changed, 180 insertions(+), 89 deletions(-)","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 03BF6C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 19 Feb 2026 14:12:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A86D5620C9;\n\tThu, 19 Feb 2026 15:12:58 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 192C4620C9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 19 Feb 2026 15:12:57 +0100 (CET)","from killaraus.ideasonboard.com (unknown [83.245.237.175])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 9BC314D3;\n\tThu, 19 Feb 2026 15:12:03 +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=\"oAxYIweb\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1771510324;\n\tbh=BWeABwJ6mf1OeTi5jJRkRR9QnmuZR27LlPBU21h38J4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=oAxYIwebxlAUgvI2sFOx5GvF5AM8kGulZ1FYTBxTEEgLawUCapDvsY+nJNKp9z1SF\n\tjI/j7pgd3xB3HfgEO5W7WGiu4OX0fbilWpaBMZwXRyCc3JmkBs6RLVmpkV7VdgW2yX\n\tNWyunDWUnAZimXt3cNTwR7wQea6Zs3lPPUF1wbF0=","Date":"Thu, 19 Feb 2026 15:12:53 +0100","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"Hans de Goede <johannes.goede@oss.qualcomm.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","Message-ID":"<20260219141253.GP520738@killaraus.ideasonboard.com>","References":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>\n\t<85y0kr9gk9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<85y0kr9gk9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","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":38276,"web_url":"https://patchwork.libcamera.org/comment/38276/","msgid":"<a0046927-03f3-46bc-aeeb-536b0d425591@oss.qualcomm.com>","date":"2026-02-23T15:44:46","subject":"Re: [PATCH 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","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 11:00 PM, Milan Zamazal wrote:\n> Hans de Goede <johannes.goede@oss.qualcomm.com> writes:\n> \n>> Hi All,\n>>\n>> The QCM2290 SoC used on the Arduino Uno-Q seems to have a very weak GPU(1),\n>> so weak that it is barely faster then a single CPU core.\n>>\n>> This has made me code-up the long envisioned multi-threading support\n>> for the CPU softISP :)\n> \n> Reason to not drop CPU ISP in future?\n\nOne reason yes, I think it will be good to keep it around as a lowest\ncommon denominator anyways also for e.g. phones with older powervr\ngfx which will never get FOSS GPU support and other cases where we\nmay not be able to use a GPU for one reason or another.\n\n>> Benchmark results for the Uno-Q + IMX219 running at 3280x2464 -> 3272x2464:\n>>\n>> 1 thread :  147ms / frame, ~6.5  fps\n>> 2 threads:   81ms / frame, ~12   fps\n>> 3 threads:   66ms / frame, ~14.5 fps\n>> GPU:        130ms / frame, ~7,5  fps\n>> GPU 0-copy: 110ms / frame, ~9.5  fps (requires pipeline + camss hacks)\n>> GPU lite:    85ms / frame, ~12   fps (CCM, contrast and gamma disabled)\n> \n> The CPU measurements are with or without CCM?\n\nwithout CCM.\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 60F9AC0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Feb 2026 15:44:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A58BC62287;\n\tMon, 23 Feb 2026 16:44:53 +0100 (CET)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n\t[205.220.168.131])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 909C4621CE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Feb 2026 16:44:51 +0100 (CET)","from pps.filterd (m0279867.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n\t61NAYMss3409088 for <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Feb 2026 15:44:50 GMT","from mail-qk1-f197.google.com (mail-qk1-f197.google.com\n\t[209.85.222.197])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cgn8trvjn-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:44:49 +0000 (GMT)","by mail-qk1-f197.google.com with SMTP id\n\taf79cd13be357-8c71500f274so503953085a.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Feb 2026 07:44:49 -0800 (PST)","from [10.40.99.10] ([78.108.130.194])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-b9084e8cb3fsm341748266b.48.2026.02.23.07.44.47\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tMon, 23 Feb 2026 07:44:47 -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=\"ajijgUDG\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n\theader.b=\"Ht86ZN4X\"; 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\tvwb59xWSjBfpRfcYqKtKqR4FuRYQNbRkN9Y3RmCnYSM=; b=ajijgUDGIIt28hgq\n\tgpR8coX0fg8tuGZ3Tqt/DBSfpMpt7VOOoQ7U+rQ4O8ezyOCPGlxvPlUjfaTSOqtg\n\ttY3ZxgjaR7Wg3LzB/XWOHzyNTugIRiY8i7ORHiiOh6A1Srxpzf6ic5HY6S/nM2CQ\n\tc8ISKpq4WDIl0STqckaydI8TMpoC0LHxZ6ExlEkqhdusiANohnlDMhTtXVgmAy9E\n\t2HxuJfXIoDXTp1lfRChjZJZg9USIjKESE4L2IjvGJG0eorNTNnRgpgmJemOQ/goz\n\tVkDCfCOFcdgBOuNwHjr2+4Ugk5kxtQQAgRNcOVrztuE37DsZEFyeyxBuVy+aXv8z\n\tYlV9UA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=oss.qualcomm.com; s=google; t=1771861488; x=1772466288;\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=vwb59xWSjBfpRfcYqKtKqR4FuRYQNbRkN9Y3RmCnYSM=;\n\tb=Ht86ZN4XBdLPuerRLnXe74pgJeG8aYv5xmimYhBh6KaYLWo+ZBkSlZceEyBIl+GXsq\n\tP39y1qLjS5cErug7cMOTe9QK4rmVmFBtPCAPiNGB09HsSs4/xC0+i046CZeuphAg8Ei9\n\ttJgQ6OXFrW39NQdz2mUYANv4/b7IuuuQVDvDYZZfrMvqzzGcLVAy6XPS9uGlVNwqFjvL\n\tTTXoSA91xhvWkULLp11IGrkST+0Ci0dQbb6K4lA1QkA0w89mvp8LR358e7W6QnjJPPWU\n\tVPWfkMy7P3EyHUiC82PFDAW2lMuKq+iJeDUzy5Va1FeZhomZXkftX87KavrNnpeWellV\n\tFMLA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1771861488; x=1772466288;\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=vwb59xWSjBfpRfcYqKtKqR4FuRYQNbRkN9Y3RmCnYSM=;\n\tb=NEhp9b9uYn1nL/gBfPOEbWUFW+RqaxKUaSpfA4JFWf3TIwocj2BGZOwrFKPvqztSe5\n\tks6/FD8lCqQhnRplx8LCM6m+kaojs7C/ezaGmAmRlq1HGZqyQrPV3rD+27BA7xLX3WRA\n\tsXiZNMhnNmVqtNqREVctPcbm2kasgFeykDNrUhfuiiSiJwiPCYuc1h7UwcwyGQl7CGLD\n\tbN4DK0m9TQCVy4Pkh71AChCpTtfH1wDUXN2Utl4xTKfQhOKgRs4YiugwS2raXU2eIWsN\n\tZq80cFsQNN6PDGCttj9y1L/8Dnrs0aKq3zpslGza2b3GJ1ylcbZp5WjfzN/60tlH2R/1\n\tIm6A==","X-Gm-Message-State":"AOJu0YzP1cH4l0J1SE9D1Q9XdXhucgN63uPfx1e6ZDhYraGWu8/xwUza\n\tzPjR+M4i1eUkXmqLE6fwZUo6J2o5WJ5KilAcEsm7g08mWQ4X/0/vu0ouEHJ9e9wuavkpozj6blh\n\tlgcPjELYXpEPfQpLDxAx+nRy+GYRO3bVzYZj1xzbQbzbenm4SuC1c1HOJja6JGanTrLk1VV2Y0x\n\tEHVZ88ae4S","X-Gm-Gg":"AZuq6aLO10ULWIBOeeQ3mPcpBoylEuAzEM5z7HwJieiDBnhQP7zJuiJNJw0rhX3HQXe\n\tMGZ49Il/itcn4wLTRZXy4rLVwugJnY0b/U3CqsP5EpiA54LpcoRkHoqJy0Uta/YKK75dXmINXXb\n\tnuu9/viIVa9ZJyJ82qYHOBUdfpnmqs1fIurIjGEQyaD6YIGNnOpF/3tdeLdcALQaIktMabg57hr\n\ttW5QhiOOrbRDyRl8sy1eQY5s/r5EoCbdvwtG5OeQg000wBwm6S0+EJRxXUSjrmv4OgCXVnqDoOU\n\t3a6JQI3QS4bc3sEkBezq5a5Bzc8uMtd3ks78XlWWvucH0NBbNlhVyAFad0mUSSMGnrVnGM9+jPt\n\tG3+/n10lI4Y3htQ3UNIKPl3cQrMaTdGinJN/L1A2i","X-Received":["by 2002:a05:620a:7118:b0:8cb:4fa5:d460 with SMTP id\n\taf79cd13be357-8cb8ca9296fmr983982385a.74.1771861488461; \n\tMon, 23 Feb 2026 07:44:48 -0800 (PST)","by 2002:a05:620a:7118:b0:8cb:4fa5:d460 with SMTP id\n\taf79cd13be357-8cb8ca9296fmr983977385a.74.1771861487825; \n\tMon, 23 Feb 2026 07:44:47 -0800 (PST)"],"Message-ID":"<a0046927-03f3-46bc-aeeb-536b0d425591@oss.qualcomm.com>","Date":"Mon, 23 Feb 2026 16:44:46 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","From":"Hans de Goede <johannes.goede@oss.qualcomm.com>","Subject":"Re: [PATCH 0/5] software_isp: debayer_cpu: Add multi-threading\n\tsupport","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>\n\t<85y0kr9gk9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Language":"en-US, nl","In-Reply-To":"<85y0kr9gk9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Authority-Analysis":"v=2.4 cv=X7Jf6WTe c=1 sm=1 tr=0 ts=699c75f1 cx=c_pps\n\ta=50t2pK5VMbmlHzFWWp8p/g==: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=eoimf2acIAo5FJnRuUoq:22\n\ta=EUspDBNiAAAA:8 a=McSI2uTL08HhXZXNg9QA:9 a=QEXdDO2ut3YA:10\n\ta=IoWCM6iH3mJn3m4BftBB:22","X-Proofpoint-ORIG-GUID":"PuWnlDaFn-LZHny8vexHysJ4CfqjsPjL","X-Proofpoint-GUID":"PuWnlDaFn-LZHny8vexHysJ4CfqjsPjL","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwMjIzMDEzNSBTYWx0ZWRfX45yMVN49itg/\n\tw4K77Yd1K8uvsAyn3l8xKzTt0C6WS5K38B1r9h04TyRl6JeEZGi2k8giRmaYwKGMSFI6L1hkIFx\n\tyX8PdTjzCym6HevE7ZQ43aVFBQ8dULUWIicwhQzSlq+MpYqAGsployGs2c/E+ux9qwIwVbhs0Vl\n\tilxw9vqJagvPloRy21lqfl8Hkj97k8fVImJXGdpPHmY78sOVUmELDX4h6jr7SWMWmKbZ/+rxJW4\n\tPTG4094mFlCTpuzPfw0SyNM+rS3mhy7ptEpnxzo54iAlYhDqRcABf99HdkKcUuuENd9/uDYwu3z\n\t/l+tPaVOqL70XYk++Ibt2i5BtlBScj+MaEvH2ENH8IozVl53cQ6E+gP3ZUQQKbX/j1yzIUN/KsS\n\tYNrp/9THtzuDBGxfpQ8St+L0X3Gy8n5kSpNPT3T9YTkXbnjJpl0OwGqU59pY8TaZL94/MeFBGCS\n\t0q69KVCyxTvOq7ITC1w==","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\tmalwarescore=0 suspectscore=0 priorityscore=1501 clxscore=1015\n\tbulkscore=0\n\tadultscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0\n\tphishscore=0\n\tclassifier=typeunknown authscore=0 authtc= authcc= route=outbound\n\tadjust=0\n\treason=mlx scancount=1 engine=8.22.0-2602130000\n\tdefinitions=main-2602230135","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>"}}]