Patch Detail
Show a patch.
GET /api/patches/25137/?format=api
{ "id": 25137, "url": "https://patchwork.libcamera.org/api/patches/25137/?format=api", "web_url": "https://patchwork.libcamera.org/patch/25137/", "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": "<20251120233347.5046-14-bryan.odonoghue@linaro.org>", "date": "2025-11-20T23:33:37", "name": "[v4,13/23] libcamera: software_isp: debayer_egl: Make gpuisp default softisp mode", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "002007a9212a1baac5762bcc194153c71830726f", "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/25137/mbox/", "series": [ { "id": 5600, "url": "https://patchwork.libcamera.org/api/series/5600/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5600", "date": "2025-11-20T23:33:24", "name": "Add GLES 2.0 GPUISP to libcamera", "version": 4, "mbox": "https://patchwork.libcamera.org/series/5600/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/25137/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/25137/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 AFC14BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 Nov 2025 23:34:20 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 51D2E60AC8;\n\tFri, 21 Nov 2025 00:34:20 +0100 (CET)", "from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com\n\t[IPv6:2a00:1450:4864:20::42e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E2FF160AA2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Nov 2025 00:34:17 +0100 (CET)", "by mail-wr1-x42e.google.com with SMTP id\n\tffacd0b85a97d-42b3b29153fso858624f8f.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Nov 2025 15:34:17 -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\tffacd0b85a97d-42cb7fa3a81sm7984139f8f.26.2025.11.20.15.34.15\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 20 Nov 2025 15:34:16 -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=\"O2YUoith\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1763681657; x=1764286457;\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=w7kqIVIEHI/hwzMu7gLLNDIA8aJkeSYOyl1cHM2SUhY=;\n\tb=O2YUoithUS8Nb81yXVROini0oJocs08eovJxV8mBWaR4XUNqX/7WXvnsHdKt8/C0Mv\n\trqkjDsoNyYq6PunE8AjVeMFSqxgXAk1dmjJXEf+nS50J/uIilp7fzSy95+lhhe4v2MoL\n\tLNVjztt/cP8PJcyDwrQYUSzyAb6SCbhW88P7jUVnzajsGvazA7zejtw9oKqtZcjcfDfa\n\tNst6aChJR9hWNKyOJSuQ2taxTBLZxTKatjakLy/ZAVCV6tNGUaq9xPtj3OBlW0n16m2R\n\temMBEZjG1i22l4RQyVC9QEW3mTTloSkqUxIruW1zjIqZHPYbHmiilMhLs4YwZQ9ODPTg\n\ttGBg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1763681657; x=1764286457;\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=w7kqIVIEHI/hwzMu7gLLNDIA8aJkeSYOyl1cHM2SUhY=;\n\tb=pdQBDl4aTh/2GRoBYXF+DzExkGETjvxpksY3f3fzvLvQgZJY6SFrH7+VN2gqwIZApv\n\tabLqkY+2r0H3Ygydzm0o+bzIrkOcco4NpnlfdLdCwgRVlK20lvL+HVSQ8GnPWNJlqVhC\n\tC3zHbpwLFyz4swwS9fgQVqiDJrfAGEka2gtQNL6c9RDje+Sj2VqP042G9DIMqRks0+TM\n\tH8+ssDYASdWb3kN4TVJS8ag/3n9oF3wxTmbD+vg7vnKlB2LHLAPCntcNAYikbDCk8cOe\n\tYmc+aAzK5GATTAWGj3P4XJCT+UGKJAm3WeMwTAs7aL/yq1E/uh891hkgaBaeX7+h0mEE\n\tDk/g==", "X-Gm-Message-State": "AOJu0YyrvJM549RE1vI8Sf9h5As1XN5p2thB3bRnIYWltqojylhJowuh\n\t7FF4jDJZBmZwPV6E3xFJewbU61GP+sfZmCdF5ZQH9HWn3mKNZVYI+0IrxU/PCB1egfw9Q1SFwfG\n\ta/AyEwfw=", "X-Gm-Gg": "ASbGncvBXwGvKg1sSqG1/zx0fThq4cWpnH8HXyM47oZKYXoZYj2eBVPwSvuoTQuFhVz\n\tsAoOlagd0BnY7UgT07To0ubG3iDXayy8u8P2Qa2HzGTzX5wFiaa47NLPyjzZLOZOGXfLAIbQZ/2\n\tsepdymaj3zInP+d8ZZo8TJ1w0yPVY6Wp441JI8XCUHHVB8koo+io0sBKSM39jd3Ec1x6aQY3PBX\n\tt2hBVJxZ/TF5edojq7D2NrCWaCsG/NZ5WpNqS0JGua4uX8LnRa2G+HpT2MNGJrrPWjylfThEEHV\n\tyq6+UZT1Aohd9jEaTkdANb458ysEfqEoummN1e4S/RmdoIPMiiofYI2wK/ZWUAGRo4ohwzEkz2c\n\tvYBDVE62HvCPXAvfTtBRYSKNnTWi7d4hiQWvzXiymJpjJNwN3yFPz3iaG5mxCDYNMpjSRaM/5bA\n\tva3SLb54jfJN1E2xH8v4MOjZuAhmRCIca7Bo73gBeA9LXMZcVVphwuytf2+LeYPhTP7L8=", "X-Google-Smtp-Source": "AGHT+IFB1izsyEpkjdRGqy6ctUKF+EqW3cffPdIFHiBGGwQguZlmu0FgtXN8rU83kQ/Ca8GWOiNoCA==", "X-Received": "by 2002:a5d:64e6:0:b0:42b:36f4:cd20 with SMTP id\n\tffacd0b85a97d-42cc1d2e292mr84540f8f.27.1763681657247; \n\tThu, 20 Nov 2025 15:34:17 -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 v4 13/23] libcamera: software_isp: debayer_egl: Make gpuisp\n\tdefault softisp mode", "Date": "Thu, 20 Nov 2025 23:33:37 +0000", "Message-ID": "<20251120233347.5046-14-bryan.odonoghue@linaro.org>", "X-Mailer": "git-send-email 2.51.2", "In-Reply-To": "<20251120233347.5046-1-bryan.odonoghue@linaro.org>", "References": "<20251120233347.5046-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 7d21f191c..9944ca573 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 #endif\n \tif (!debayer_)\n", "prefixes": [ "v4", "13/23" ] }