[{"id":38506,"web_url":"https://patchwork.libcamera.org/comment/38506/","msgid":"<adT3nt9sO13PnN7c@zed>","date":"2026-04-07T12:25:13","subject":"Re: [PATCH 02/11] libcamera: software_isp: Move GPU TODO items to\n\tTODO.md","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Laurent\n\nOn Sun, Apr 05, 2026 at 10:14:34PM +0300, Laurent Pinchart wrote:\n> There's no need to store GPU-specific TODO items in a separate file,\n> that clutters the software_isp directory. Move them from gpuisp-todo.txt\n> to TODO.md.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\n> ---\n>  src/libcamera/software_isp/TODO.md         | 47 ++++++++++++++++++++++\n>  src/libcamera/software_isp/gpuisp-todo.txt | 40 ------------------\n>  2 files changed, 47 insertions(+), 40 deletions(-)\n>  delete mode 100644 src/libcamera/software_isp/gpuisp-todo.txt\n>\n> diff --git a/src/libcamera/software_isp/TODO.md b/src/libcamera/software_isp/TODO.md\n> index bdd4a7421766..036cf2b7f9ce 100644\n> --- a/src/libcamera/software_isp/TODO.md\n> +++ b/src/libcamera/software_isp/TODO.md\n> @@ -182,3 +182,50 @@ lower the CPU consumption, but at the same time I don't feel comfortable\n>  building up on top of an implementation that may work a bit more by chance than\n>  by correctness, as that's not very maintainable.\n>  ```\n> +\n> +## GPU-based implementation\n> +\n> +The TODO items are listed in perceived order of ease.\n> +\n> +### Denoising\n> +\n> +WIP\n> +\n> +### Dead pixel correction\n> +\n> +WIP\n> +\n> +### Lense shading correction\n> +\n> +WIP\n> +\n> +### Use dma-buf handle to generate upload texture\n> +\n> +`eglCreateImageKHR` can be used to generate the upload texture i.e.to feed the\n> +bayer data into the GPU.\n> +\n> +### processFrame() to run in its own thread\n> +\n> +`processFrame()` runs in the context of the Debayer::process() thread. Robert\n> +Mader suggested and it seems like a good suggestion too to run processFrame()\n> +in its own thread.\n> +\n> +### Multi-pass shaders\n> +\n> +- This needs some rewiring the idea is to have a list of algorithms as is done\n> +  in cpuisp iterating through the list in a for() loop.\n> +- The logic managing the loop has an initial input buffer and the final output\n> +  buffer.\n> +- The higher level logic must then inform each of the algorithms either to\n> +  generate an internal working buffer or pass the final output buffer to the\n> +  last shader in the list\n> +- This will allow for multi-pass shaders with the final algorithm presenting\n> +  data not to its internal buffer but to the final output buffer\n> +\n> +### 24 bit output support\n> +\n> +Need to implement compute shader to do this.\n> +\n> +### Lense flare correction\n> +\n> +Not WIP still TBD\n> diff --git a/src/libcamera/software_isp/gpuisp-todo.txt b/src/libcamera/software_isp/gpuisp-todo.txt\n> deleted file mode 100644\n> index 8930da120962..000000000000\n> --- a/src/libcamera/software_isp/gpuisp-todo.txt\n> +++ /dev/null\n> @@ -1,40 +0,0 @@\n> -List the TODOs in perceived order of ease.\n> -\n> -\n> -Denoising:\n> -\t- WIP\n> -\n> -Dead pixel correction:\n> -\t- WIP\n> -\n> -Lense shading correction:\n> -\t- WIP\n> -\n> -Use dma-buf handle to generate upload texture:\n> -\t- eglCreateImageKHR can be used to generate the upload texture i.e.\n> -\t  to feed the bayer data into the GPU.\n> -\n> -processFrame() to run in its own thread:\n> -\t- processFrame() runs in the context of the Debayer::process()\n> -\t  thread. Robert Mader suggested and it seems like a good\n> -\t  suggestion too to run processFrame() in its own thread.\n> -\n> -Multi-pass shaders:\n> -\t- This needs some rewiring the idea is to have a list\n> -\t  of algorithms as is done in cpuisp iterating through the\n> -\t  list in a for() loop.\n> -\t- The logic managing the loop has an initial input buffer\n> -\t  and the final output buffer.\n> -\t- The higher level logic must then inform each of the\n> -\t  algorithms either to generate an internal working buffer\n> -\t  or pass the final output buffer to the last shader\n> -\t  in the list\n> -\t- This will allow for multi-pass shaders with the final\n> -\t  algorithm presenting data not to its internal buffer\n> -\t  but to the final output buffer\n> -\n> -24 bit output support:\n> -\t- Need to implement compute shader to do this.\n> -\n> -Lense flare correction:\n> -\t- Not WIP still TBD\n> --\n> Regards,\n>\n> Laurent Pinchart\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 F21BABEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  7 Apr 2026 12:25:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BF4AF62D82;\n\tTue,  7 Apr 2026 14:25:17 +0200 (CEST)","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 1D2D062846\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  7 Apr 2026 14:25:17 +0200 (CEST)","from ideasonboard.com (mob-109-113-47-41.net.vodafone.it\n\t[109.113.47.41])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 57C264B3;\n\tTue,  7 Apr 2026 14:23:49 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"wK6/pmO6\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1775564629;\n\tbh=lefl+YOTf0dVCU9DERhgFkI/Q97oU29bK6YhzBFwgfU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=wK6/pmO6mLnLF6z4Ij86060Z9d4qBzKz/rnbDpHibwIPmeEePr+HXlyd0xS+rSri1\n\tJisissqpSnpPCAiIHzFxS9/ssaban2M68/zpOyQ3YA9CkT7Solip1uJgOVc0Eog/BK\n\tvUo79cUvbHriLj6DRA8PMtfbWMApSbO+re3sO6jM=","Date":"Tue, 7 Apr 2026 14:25:13 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 02/11] libcamera: software_isp: Move GPU TODO items to\n\tTODO.md","Message-ID":"<adT3nt9sO13PnN7c@zed>","References":"<20260405191443.1209948-1-laurent.pinchart@ideasonboard.com>\n\t<20260405191443.1209948-3-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260405191443.1209948-3-laurent.pinchart@ideasonboard.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":38507,"web_url":"https://patchwork.libcamera.org/comment/38507/","msgid":"<adT34ViOiSU5YaGZ@zed>","date":"2026-04-07T12:26:21","subject":"Re: [PATCH 02/11] libcamera: software_isp: Move GPU TODO items to\n\tTODO.md","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Laurent\n\nOn Sun, Apr 05, 2026 at 10:14:34PM +0300, Laurent Pinchart wrote:\n> There's no need to store GPU-specific TODO items in a separate file,\n> that clutters the software_isp directory. Move them from gpuisp-todo.txt\n> to TODO.md.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n   j\n\n> ---\n>  src/libcamera/software_isp/TODO.md         | 47 ++++++++++++++++++++++\n>  src/libcamera/software_isp/gpuisp-todo.txt | 40 ------------------\n>  2 files changed, 47 insertions(+), 40 deletions(-)\n>  delete mode 100644 src/libcamera/software_isp/gpuisp-todo.txt\n>\n> diff --git a/src/libcamera/software_isp/TODO.md b/src/libcamera/software_isp/TODO.md\n> index bdd4a7421766..036cf2b7f9ce 100644\n> --- a/src/libcamera/software_isp/TODO.md\n> +++ b/src/libcamera/software_isp/TODO.md\n> @@ -182,3 +182,50 @@ lower the CPU consumption, but at the same time I don't feel comfortable\n>  building up on top of an implementation that may work a bit more by chance than\n>  by correctness, as that's not very maintainable.\n>  ```\n> +\n> +## GPU-based implementation\n> +\n> +The TODO items are listed in perceived order of ease.\n> +\n> +### Denoising\n> +\n> +WIP\n> +\n> +### Dead pixel correction\n> +\n> +WIP\n> +\n> +### Lense shading correction\n> +\n> +WIP\n> +\n> +### Use dma-buf handle to generate upload texture\n> +\n> +`eglCreateImageKHR` can be used to generate the upload texture i.e.to feed the\n> +bayer data into the GPU.\n> +\n> +### processFrame() to run in its own thread\n> +\n> +`processFrame()` runs in the context of the Debayer::process() thread. Robert\n> +Mader suggested and it seems like a good suggestion too to run processFrame()\n> +in its own thread.\n> +\n> +### Multi-pass shaders\n> +\n> +- This needs some rewiring the idea is to have a list of algorithms as is done\n> +  in cpuisp iterating through the list in a for() loop.\n> +- The logic managing the loop has an initial input buffer and the final output\n> +  buffer.\n> +- The higher level logic must then inform each of the algorithms either to\n> +  generate an internal working buffer or pass the final output buffer to the\n> +  last shader in the list\n> +- This will allow for multi-pass shaders with the final algorithm presenting\n> +  data not to its internal buffer but to the final output buffer\n> +\n> +### 24 bit output support\n> +\n> +Need to implement compute shader to do this.\n> +\n> +### Lense flare correction\n> +\n> +Not WIP still TBD\n> diff --git a/src/libcamera/software_isp/gpuisp-todo.txt b/src/libcamera/software_isp/gpuisp-todo.txt\n> deleted file mode 100644\n> index 8930da120962..000000000000\n> --- a/src/libcamera/software_isp/gpuisp-todo.txt\n> +++ /dev/null\n> @@ -1,40 +0,0 @@\n> -List the TODOs in perceived order of ease.\n> -\n> -\n> -Denoising:\n> -\t- WIP\n> -\n> -Dead pixel correction:\n> -\t- WIP\n> -\n> -Lense shading correction:\n> -\t- WIP\n> -\n> -Use dma-buf handle to generate upload texture:\n> -\t- eglCreateImageKHR can be used to generate the upload texture i.e.\n> -\t  to feed the bayer data into the GPU.\n> -\n> -processFrame() to run in its own thread:\n> -\t- processFrame() runs in the context of the Debayer::process()\n> -\t  thread. Robert Mader suggested and it seems like a good\n> -\t  suggestion too to run processFrame() in its own thread.\n> -\n> -Multi-pass shaders:\n> -\t- This needs some rewiring the idea is to have a list\n> -\t  of algorithms as is done in cpuisp iterating through the\n> -\t  list in a for() loop.\n> -\t- The logic managing the loop has an initial input buffer\n> -\t  and the final output buffer.\n> -\t- The higher level logic must then inform each of the\n> -\t  algorithms either to generate an internal working buffer\n> -\t  or pass the final output buffer to the last shader\n> -\t  in the list\n> -\t- This will allow for multi-pass shaders with the final\n> -\t  algorithm presenting data not to its internal buffer\n> -\t  but to the final output buffer\n> -\n> -24 bit output support:\n> -\t- Need to implement compute shader to do this.\n> -\n> -Lense flare correction:\n> -\t- Not WIP still TBD\n> --\n> Regards,\n>\n> Laurent Pinchart\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 411FDBEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  7 Apr 2026 12:26:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E148262D82;\n\tTue,  7 Apr 2026 14:26:25 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2088F62846\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  7 Apr 2026 14:26:25 +0200 (CEST)","from ideasonboard.com (mob-109-113-47-41.net.vodafone.it\n\t[109.113.47.41])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A0AAC4B3;\n\tTue,  7 Apr 2026 14:24:57 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"COh5Ckxy\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1775564697;\n\tbh=mORuYlOIlga2jo1EEZWaDMjOJSc5KjENlVfEfZCVKuY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=COh5CkxyhQz3JmgXLYExEoIsk5/zUkYLyvnLzoABjniLHfIA+Rt+XkId4zrbXXe+e\n\t6IrNuEY2PULinjonlZAqa8qz/p+xFXiMeIfe6kQTtGW15csiEoWyfpGM/eafPED8qN\n\tPokoS518Y+axFOES8MGmSW6pCMa0zu540DhqnAXY=","Date":"Tue, 7 Apr 2026 14:26:21 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 02/11] libcamera: software_isp: Move GPU TODO items to\n\tTODO.md","Message-ID":"<adT34ViOiSU5YaGZ@zed>","References":"<20260405191443.1209948-1-laurent.pinchart@ideasonboard.com>\n\t<20260405191443.1209948-3-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260405191443.1209948-3-laurent.pinchart@ideasonboard.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":38590,"web_url":"https://patchwork.libcamera.org/comment/38590/","msgid":"<4d14a6b6-234a-42fa-9c98-1d8eb345858b@ideasonboard.com>","date":"2026-04-13T10:36:46","subject":"Re: [PATCH 02/11] libcamera: software_isp: Move GPU TODO items to\n\tTODO.md","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2026. 04. 05. 21:14 keltezéssel, Laurent Pinchart írta:\n> There's no need to store GPU-specific TODO items in a separate file,\n> that clutters the software_isp directory. Move them from gpuisp-todo.txt\n> to TODO.md.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n>   src/libcamera/software_isp/TODO.md         | 47 ++++++++++++++++++++++\n>   src/libcamera/software_isp/gpuisp-todo.txt | 40 ------------------\n>   2 files changed, 47 insertions(+), 40 deletions(-)\n>   delete mode 100644 src/libcamera/software_isp/gpuisp-todo.txt\n> \n> diff --git a/src/libcamera/software_isp/TODO.md b/src/libcamera/software_isp/TODO.md\n> index bdd4a7421766..036cf2b7f9ce 100644\n> --- a/src/libcamera/software_isp/TODO.md\n> +++ b/src/libcamera/software_isp/TODO.md\n> @@ -182,3 +182,50 @@ lower the CPU consumption, but at the same time I don't feel comfortable\n>   building up on top of an implementation that may work a bit more by chance than\n>   by correctness, as that's not very maintainable.\n>   ```\n> +\n> +## GPU-based implementation\n> +\n> +The TODO items are listed in perceived order of ease.\n> +\n> +### Denoising\n> +\n> +WIP\n> +\n> +### Dead pixel correction\n> +\n> +WIP\n> +\n> +### Lense shading correction\n> +\n> +WIP\n> +\n> +### Use dma-buf handle to generate upload texture\n> +\n> +`eglCreateImageKHR` can be used to generate the upload texture i.e.to feed the\n> +bayer data into the GPU.\n> +\n> +### processFrame() to run in its own thread\n> +\n> +`processFrame()` runs in the context of the Debayer::process() thread. Robert\n> +Mader suggested and it seems like a good suggestion too to run processFrame()\n> +in its own thread.\n> +\n> +### Multi-pass shaders\n> +\n> +- This needs some rewiring the idea is to have a list of algorithms as is done\n> +  in cpuisp iterating through the list in a for() loop.\n> +- The logic managing the loop has an initial input buffer and the final output\n> +  buffer.\n> +- The higher level logic must then inform each of the algorithms either to\n> +  generate an internal working buffer or pass the final output buffer to the\n> +  last shader in the list\n> +- This will allow for multi-pass shaders with the final algorithm presenting\n> +  data not to its internal buffer but to the final output buffer\n> +\n> +### 24 bit output support\n> +\n> +Need to implement compute shader to do this.\n> +\n> +### Lense flare correction\n> +\n> +Not WIP still TBD\n> diff --git a/src/libcamera/software_isp/gpuisp-todo.txt b/src/libcamera/software_isp/gpuisp-todo.txt\n> deleted file mode 100644\n> index 8930da120962..000000000000\n> --- a/src/libcamera/software_isp/gpuisp-todo.txt\n> +++ /dev/null\n> @@ -1,40 +0,0 @@\n> -List the TODOs in perceived order of ease.\n> -\n> -\n> -Denoising:\n> -\t- WIP\n> -\n> -Dead pixel correction:\n> -\t- WIP\n> -\n> -Lense shading correction:\n> -\t- WIP\n> -\n> -Use dma-buf handle to generate upload texture:\n> -\t- eglCreateImageKHR can be used to generate the upload texture i.e.\n> -\t  to feed the bayer data into the GPU.\n> -\n> -processFrame() to run in its own thread:\n> -\t- processFrame() runs in the context of the Debayer::process()\n> -\t  thread. Robert Mader suggested and it seems like a good\n> -\t  suggestion too to run processFrame() in its own thread.\n> -\n> -Multi-pass shaders:\n> -\t- This needs some rewiring the idea is to have a list\n> -\t  of algorithms as is done in cpuisp iterating through the\n> -\t  list in a for() loop.\n> -\t- The logic managing the loop has an initial input buffer\n> -\t  and the final output buffer.\n> -\t- The higher level logic must then inform each of the\n> -\t  algorithms either to generate an internal working buffer\n> -\t  or pass the final output buffer to the last shader\n> -\t  in the list\n> -\t- This will allow for multi-pass shaders with the final\n> -\t  algorithm presenting data not to its internal buffer\n> -\t  but to the final output buffer\n> -\n> -24 bit output support:\n> -\t- Need to implement compute shader to do this.\n> -\n> -Lense flare correction:\n> -\t- Not WIP still TBD","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 C956CBDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Apr 2026 10:36:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7B23762E79;\n\tMon, 13 Apr 2026 12:36:54 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 40A3D62E6B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Apr 2026 12:36:53 +0200 (CEST)","from [192.168.33.49] (185.182.214.8.nat.pool.zt.hu [185.182.214.8])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 11C4F4F1;\n\tMon, 13 Apr 2026 12:35:19 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"GIPAAvXp\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1776076521;\n\tbh=uSfUkOTM5L6zzhXQXAvadSw3B6xzhNFk9SBLhF4SYSY=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=GIPAAvXpQxS79TnNB5ACcs70m9b6DE5ZAYoti+cjJGNTd4cfxCZ8gcJsgfMynsqF7\n\tCUJz2rzoe6rxCKV8eADUgCeRJgPN9bc7CzrkVGgWyhp2o0wXqJkWvlKye1n2fPE2mI\n\t1Z4PNE5HhM1Qz6h2/FD4clm4Xuv5p8Srhfk+/BQs=","Message-ID":"<4d14a6b6-234a-42fa-9c98-1d8eb345858b@ideasonboard.com>","Date":"Mon, 13 Apr 2026 12:36:46 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 02/11] libcamera: software_isp: Move GPU TODO items to\n\tTODO.md","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20260405191443.1209948-1-laurent.pinchart@ideasonboard.com>\n\t<20260405191443.1209948-3-laurent.pinchart@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20260405191443.1209948-3-laurent.pinchart@ideasonboard.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>"}}]