Patch Detail
Show a patch.
GET /api/patches/25251/?format=api
{ "id": 25251, "url": "https://patchwork.libcamera.org/api/patches/25251/?format=api", "web_url": "https://patchwork.libcamera.org/patch/25251/", "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": "<20251127023739.179652-15-bryan.odonoghue@linaro.org>", "date": "2025-11-27T02:37:29", "name": "[v5,14/24] libcamera: software_isp: debayer_egl: Make gpuisp default softisp mode", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "b560e9ffd927fa62b2a275b2d80c62a52a1a8cf4", "submitter": { "id": 175, "url": "https://patchwork.libcamera.org/api/people/175/?format=api", "name": "Bryan O'Donoghue", "email": "bryan.odonoghue@linaro.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/25251/mbox/", "series": [ { "id": 5617, "url": "https://patchwork.libcamera.org/api/series/5617/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5617", "date": "2025-11-27T02:37:15", "name": "Add GLES 2.0 GPUISP to libcamera", "version": 5, "mbox": "https://patchwork.libcamera.org/series/5617/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/25251/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/25251/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 EE730C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Nov 2025 02:38:18 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8436360B2F;\n\tThu, 27 Nov 2025 03:38:18 +0100 (CET)", "from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com\n\t[IPv6:2a00:1450:4864:20::32b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2CC4660AB7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Nov 2025 03:38:15 +0100 (CET)", "by mail-wm1-x32b.google.com with SMTP id\n\t5b1f17b1804b1-477b198f4bcso1723525e9.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Nov 2025 18:38:15 -0800 (PST)", "from inspiron14p-linux.ht.home (188-141-3-146.dynamic.upc.ie.\n\t[188.141.3.146]) by smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-4790552c3c9sm58186345e9.0.2025.11.26.18.38.12\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 26 Nov 2025 18:38:13 -0800 (PST)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"tI5cza/4\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1764211094; x=1764815894;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=i8EigPEvYaH2gSH8JSHJbCseJKpik1Nyc/20liFxLWw=;\n\tb=tI5cza/4onCcJRgREVTKeE8mbVNy9lQNeIOXtffxP3/w74/CwbnhSmkkZY4/j238mm\n\tBJEmq0GQ3cNY1pAFQP1gXRuPmheK4XLVvRtw3taxbrPC9mn/zmWKh1pjcXmACp9mn2YI\n\tdBXZm3KGaOZP6RJDxTpkJgljkYVacnv0AFkLmnm9ECnviO5PcmCSleiVxbhutBA29ptL\n\t6OfCOE3xD+ljofnEm+QS6yCuXz9UPVekBPAcjTW9RQTG4xoZhFIaJj6+W9UjBtA/rMfC\n\tHz3DLqJN6tusjgYczEqva31zYKdTER2RKUNArFOO7qPUFPtTk68qeChY5WK/Z8vh4vmE\n\tniMg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1764211094; x=1764815894;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=i8EigPEvYaH2gSH8JSHJbCseJKpik1Nyc/20liFxLWw=;\n\tb=oYh+3rPg2c4l604Gi3Q3J43lHypW+F55U9HgJ0YGjpBpxO4zBTg3WRjDHat8orNUDh\n\t9VIqj0gix5VGXXPXMkpfZPFHPUHvVaOdQjepShOIOHV0DStsnpu6PQLr3mYz5XRoAuTV\n\tTt/sq7N0fyuaUsUOHaXGNtWoHn2+DV0M5TZPhGmEMCYlh8PA7+h7pbZx/3JgJyRmpl9h\n\tFJt5wWk1ZbIvwDSufkeoOrTq83VKK3XOgTc7yleyXL2UejS/TnCL75qnw7O4fc1vpR9v\n\t8YpOIumDRWwUIlbobvQPcIcncbWYkKrkzi1JIyjxzGM8Dw1PVvlNjwq/MJNKMY40sN/X\n\tV1rg==", "X-Gm-Message-State": "AOJu0YyeZPA4CWeMMuk0kg+pH5R6dRT/JktOQ7yY4JmtUMhyrE+ZRZcd\n\t/fqlPoV9VV83s8FOrjzmZLm/GZhVsIlLr9p169uTDcKE8gkIMUAVLbKDlYqsn3zxjya6r2+RVBz\n\t2fXp2o94=", "X-Gm-Gg": "ASbGncsYPrLXVn34I+Zsm5WrigO4pSfhESEIJrpCpaf7+6jkYheufteEbwPxqjRwZGL\n\tXXCev/k21+1syfUOi/04Dk8CkQKzlTSQWIV9zsNhPttn0/GPHUD4HcJc4h062LyNF4FwabzsbkH\n\td4xtKtYsrsWUHRypOjlJvRME44Ga5jhJT+QA/z+HEXQZi2kcHt4VcrnsyWfXYhRG19KFQPN0A9Q\n\tdys0aJHuTLIhYu/24gXWEOuaXZSQnq0ZC/E8PIKgFQQZgQNn1ENwy3QxcoQ3oGRx74OMfV+5XpK\n\tpN2cmEXsmdNy8ZD8EEFCHlvm+WIQEH0Tq7A0Q6X1PUdLUPF9f2tD2tTwvt9yiPHxWtzgcwIRXfO\n\tpoGrwSY0HvpSNz2B2mjSVzGBT1gzk1PvqEcUOq5BWHFPdGjwc4YK7Xq43Nlle71eVX2my9PnwON\n\tfKim6CgmRlB1nFuflG5iKf6+vd9vvl55X2NYw4l8JvbrLIVP7xKQNV4LlfONjMx2yB8Tw=", "X-Google-Smtp-Source": "AGHT+IGLVm3kND/2YaGeOn9w8G+REHNi2OaV/9FIz+fRfdBoXHt1XP6KJbKhffPBVehNxJ+uCM17xA==", "X-Received": "by 2002:a05:600c:4fcc:b0:471:9da:5252 with SMTP id\n\t5b1f17b1804b1-477c01ebe2amr206500015e9.29.1764211094428; \n\tWed, 26 Nov 2025 18:38:14 -0800 (PST)", "From": "Bryan O'Donoghue <bryan.odonoghue@linaro.org>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "pavel@ucw.cz,\n\tBryan O'Donoghue <bryan.odonoghue@linaro.org>", "Subject": "[PATCH v5 14/24] libcamera: software_isp: debayer_egl: Make gpuisp\n\tdefault softisp mode", "Date": "Thu, 27 Nov 2025 02:37:29 +0000", "Message-ID": "<20251127023739.179652-15-bryan.odonoghue@linaro.org>", "X-Mailer": "git-send-email 2.51.2", "In-Reply-To": "<20251127023739.179652-1-bryan.odonoghue@linaro.org>", "References": "<20251127023739.179652-1-bryan.odonoghue@linaro.org>", "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": "In some cases the GPU can deliver 15x performance in Debayer with the\nCCM on, reference hardware Qualcomm RB5 with IMX512 sensor.\n\nGiven this large performance difference it makes sense to make GPUISP\nthe default for the Software ISP.\n\nIf LIBCAMERA_SOFTISP_MODE is omitted gpu will be the default. If\nlibcamera is compiled without gpuisp support, CPU Debayer will be used.\n\nIt is still possible to select CPU mode with LIBCAMERA_SOFISP_MODE=cpu.\n\nSigned-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n---\n src/libcamera/software_isp/software_isp.cpp | 11 +++++++++--\n 1 file changed, 9 insertions(+), 2 deletions(-)", "diff": "diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp\nindex 223c1d4be..a54dcbaf5 100644\n--- a/src/libcamera/software_isp/software_isp.cpp\n+++ b/src/libcamera/software_isp/software_isp.cpp\n@@ -121,10 +121,17 @@ SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor,\n \t}\n \tstats->statsReady.connect(this, &SoftwareIsp::statsReady);\n \n-#if HAVE_DEBAYER_EGL\n \tconst char *softISPMode = utils::secure_getenv(\"LIBCAMERA_SOFTISP_MODE\");\n+\tif (softISPMode) {\n+\t\tif (strcmp(softISPMode, \"gpu\") && strcmp(softISPMode, \"cpu\")) {\n+\t\t\tLOG(SoftwareIsp, Error) << \"LIBCAMERA_SOFISP_MODE \" << softISPMode << \" invalid. \"\n+\t\t\t\t\t\t<< \"must be \\\"cpu\\\" or \\\"gpu\\\"\";\n+\t\t\treturn;\n+\t\t}\n+\t}\n \n-\tif (softISPMode && !strcmp(softISPMode, \"gpu\")) {\n+#if HAVE_DEBAYER_EGL\n+\tif (!softISPMode || !strcmp(softISPMode, \"gpu\")) {\n \t\tdebayer_ = std::make_unique<DebayerEGL>(std::move(stats), configuration);\n \t\tif (!debayer_) {\n \t\t\tLOG(SoftwareIsp, Error) << \"Failed to instantiate GPUISP\";\n", "prefixes": [ "v5", "14/24" ] }