Patch Detail
Show a patch.
GET /api/patches/26418/?format=api
{ "id": 26418, "url": "https://patchwork.libcamera.org/api/patches/26418/?format=api", "web_url": "https://patchwork.libcamera.org/patch/26418/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260405191443.1209948-3-laurent.pinchart@ideasonboard.com>", "date": "2026-04-05T19:14:34", "name": "[02/11] libcamera: software_isp: Move GPU TODO items to TODO.md", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "72fdb4b32e9ef5742a1279b84abca0d3135ecff3", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/26418/mbox/", "series": [ { "id": 5866, "url": "https://patchwork.libcamera.org/api/series/5866/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5866", "date": "2026-04-05T19:14:32", "name": "libcamera: Fix missing license information", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5866/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/26418/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/26418/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 049DCBEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 5 Apr 2026 19:14:52 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 892D862D71;\n\tSun, 5 Apr 2026 21:14:50 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 724DA62D6E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 5 Apr 2026 21:14:48 +0200 (CEST)", "from killaraus.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id DB70F6AF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 5 Apr 2026 21:13:21 +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=\"unWif23d\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1775416402;\n\tbh=lltzW5OQTptxKLMhQYICrK37oioitarQSr3O2IKaDn8=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=unWif23dj8491jMXF4MEAg4S32TbyW/fXyYLL35WYgUpkmU4jMokBkYyGak9tC5ba\n\toT//9Jo0/tabYP/r2FPUWC5v/HxYAj8mXbPZ60AEpfShmGgV2gp8YdnXzj+6Vswo+v\n\tErK6f+iJsYulWgwuPhggMLK+XrvI7zr07E4Olal8=", "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Subject": "[PATCH 02/11] libcamera: software_isp: Move GPU TODO items to\n\tTODO.md", "Date": "Sun, 5 Apr 2026 22:14:34 +0300", "Message-ID": "<20260405191443.1209948-3-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.52.0", "In-Reply-To": "<20260405191443.1209948-1-laurent.pinchart@ideasonboard.com>", "References": "<20260405191443.1209948-1-laurent.pinchart@ideasonboard.com>", "MIME-Version": "1.0", "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>" }, "content": "There's no need to store GPU-specific TODO items in a separate file,\nthat clutters the software_isp directory. Move them from gpuisp-todo.txt\nto TODO.md.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\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", "diff": "diff --git a/src/libcamera/software_isp/TODO.md b/src/libcamera/software_isp/TODO.md\nindex 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\ndiff --git a/src/libcamera/software_isp/gpuisp-todo.txt b/src/libcamera/software_isp/gpuisp-todo.txt\ndeleted file mode 100644\nindex 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", "prefixes": [ "02/11" ] }