Show a patch.

GET /api/1.1/patches/25677/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 25677,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/25677/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/25677/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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": "<20260106170059.56193-24-bryan.odonoghue@linaro.org>",
    "date": "2026-01-06T17:00:58",
    "name": "[v11,23/24] libcamera: software_isp: debayer_egl: Make gpuisp default softisp mode",
    "commit_ref": "2cf92d00c2ee4ca748f197ad49d9e28ccebafcec",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "95baa742d573c8a2426df6d1b26d683bb7892e2d",
    "submitter": {
        "id": 175,
        "url": "https://patchwork.libcamera.org/api/1.1/people/175/?format=api",
        "name": "Bryan O'Donoghue",
        "email": "bryan.odonoghue@linaro.org"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/25677/mbox/",
    "series": [
        {
            "id": 5689,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5689/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5689",
            "date": "2026-01-06T17:00:35",
            "name": "Add GLES 2.0 GPUISP to libcamera",
            "version": 10,
            "mbox": "https://patchwork.libcamera.org/series/5689/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/25677/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/25677/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 D7545BDCC0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  6 Jan 2026 17:01:36 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 78E2462021;\n\tTue,  6 Jan 2026 18:01:36 +0100 (CET)",
            "from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com\n\t[IPv6:2a00:1450:4864:20::42c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C7BBF6200C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  6 Jan 2026 18:01:32 +0100 (CET)",
            "by mail-wr1-x42c.google.com with SMTP id\n\tffacd0b85a97d-430f9ffd4e8so12253f8f.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 06 Jan 2026 09:01:32 -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-432bd0dadcfsm5515322f8f.3.2026.01.06.09.01.29\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 06 Jan 2026 09:01:30 -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=\"I0BWxU3v\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1767718892; x=1768323692;\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=fPV+YYnhiWt58AQ9eXmUONQuZ2vN/bNk/theU7ub+2o=;\n\tb=I0BWxU3v1wKRyY+56+/rhy+3v4dJjnUrMRiCCTLgpjCFYM34x9oklVdGjb74EhyFLD\n\tzgLS8XFOkfnDFiIY1+7OGVgNthAX8Zxbx+s4yoZVR5cdxxeRgnYY8gN7W4aqOIYfKpGn\n\tE7+5RVkMRGYb4MfIpaF7aGZVdOwWBlpdBuecAad34501Erzrc+iGyxJvCUtKcVn7L9N9\n\tEIT40WJXnWKZxAvT1/exOke2lL6lMwXYEYrP4piA5Mns6ClwBKenZShbNUrMeLO3oVkT\n\t6SvKCVh8EElPdnC8hOfgYgEvcUs2IHnoG8/zylngy8aYKjYbdxyaA9FIaYIFm9ffAF3Q\n\tdKxA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1767718892; x=1768323692;\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=fPV+YYnhiWt58AQ9eXmUONQuZ2vN/bNk/theU7ub+2o=;\n\tb=J8bbponJse7ynNZBzPDRy1dR+vpGtn33X03cp2GbBfkcCRuR+IMGR6teuzhzWTCIer\n\tVG/ppZrMqj4A/VBx3m6IJn90C0f8Cxn4FdeRyOxuyRMubXMn/nDIBdhuYpbdWsFVUM3/\n\tap5ICspyr4P1EhNwEz4NmZKAqAHQH3AVZBNemFG6pGUcDghrMl2JHnCG7GrhjPga503K\n\t73jY8oyKW9D9+DOQA90RiqlTNOxbIuO0NJRbmApD7f2jvZNAGCsCI37xjReQafVxO/tO\n\tkQd6VtYyRGzayTu0fS75cJlZ6Wm7QD398lAyH6ga+AJAl9n5RpmU9SRKJ3m/+Cyd2xox\n\tmpJQ==",
        "X-Gm-Message-State": "AOJu0YwvQoEPyI3+l30xMY3CbFdtALgbpg77TIPXEEIdHiwYwB+QAxGc\n\t0N+e9Zm4OHbkIMx7D/OoB0vksWsLSdN1L5lAyknLNN3qLqXbpL4ir2pIOF6gYsmLMxsiQcMdhXS\n\tmCFOnHKE=",
        "X-Gm-Gg": "AY/fxX5j4GA0zucl1nACQJ4bxwytqggeOiwekpsbD11ODCMFLavWkUHJng0dtV5CJ0v\n\ttwaaavw8fqY19dX8Ai1LF5UOv/wGoQDTEU2rzeIaFBLsZoNIdygUlSAEO5IUOBEXc4Xm8mg2+ta\n\teBX29Eyfc8m3VLRVZXTi1BQdThAisIIm6BTHt3s4tB4KJ2PS12+NepRj5JwcnlFSVg6WADaqQlY\n\tYVHRIRcnOgy1GlT2KaQOTaUAU9fLC0Zyy5GcyAJuQVGRAcNS+ROPZ+FStxWnbdrPVWNeY4srQsD\n\t0tWr6s3q25bVQy/hUYKyeqwMeG1cJQQeEIc+zN3ZkAkjQG7TBKKvzPX/2FLAP9RUCmZ3u854d67\n\tpcjkMIomTIVCndSjpHE2otJIq3ewWMCEjsvZmxS/Zl2lfFTWxqm0FXESlcvPxxrGvmWsrH2bpEO\n\txjbgFSYRVz6Ya+rG2CRsOxPpf1IkIMgr71buM+b/jZWID55jYnV7EthGFji76ngMKAoD4=",
        "X-Google-Smtp-Source": "AGHT+IHLwmE51hkUiQkYF/nSap+OoFieFzoCtTLbufQ0A6E6w/oXQgnTdoSjCKG3Zrmwovgvg4z/PA==",
        "X-Received": "by 2002:a05:6000:4287:b0:430:f74d:6e9f with SMTP id\n\tffacd0b85a97d-432bcfd37b3mr4600620f8f.14.1767718890580; \n\tTue, 06 Jan 2026 09:01:30 -0800 (PST)",
        "From": "Bryan O'Donoghue <bryan.odonoghue@linaro.org>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "pavel@ucw.cz, Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tMilan Zamazal <mzamazal@redhat.com>",
        "Subject": "[PATCH v11 23/24] libcamera: software_isp: debayer_egl: Make gpuisp\n\tdefault softisp mode",
        "Date": "Tue,  6 Jan 2026 17:00:58 +0000",
        "Message-ID": "<20260106170059.56193-24-bryan.odonoghue@linaro.org>",
        "X-Mailer": "git-send-email 2.52.0",
        "In-Reply-To": "<20260106170059.56193-1-bryan.odonoghue@linaro.org>",
        "References": "<20260106170059.56193-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\nReviewed-by: Milan Zamazal <mzamazal@redhat.com>\nSigned-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n---\n src/libcamera/software_isp/software_isp.cpp | 9 ++++++++-\n 1 file changed, 8 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp\nindex 5a93442f8..7ad3511db 100644\n--- a/src/libcamera/software_isp/software_isp.cpp\n+++ b/src/libcamera/software_isp/software_isp.cpp\n@@ -125,8 +125,15 @@ SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor,\n \n #if HAVE_DEBAYER_EGL\n \tstd::optional<std::string> softISPMode = configuration.envOption(\"LIBCAMERA_SOFTISP_MODE\", { \"software_isp\", \"mode\" });\n+\tif (softISPMode) {\n+\t\tif (softISPMode != \"gpu\" && softISPMode != \"cpu\") {\n+\t\t\tLOG(SoftwareIsp, Error) << \"LIBCAMERA_SOFISP_MODE \" << softISPMode.value() << \" 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 && softISPMode == \"gpu\") {\n+\tif (!softISPMode || softISPMode == \"gpu\") {\n \t\tdebayer_ = std::make_unique<DebayerEGL>(std::move(stats), configuration);\n \t\tgpuIspEnabled = true;\n \t}\n",
    "prefixes": [
        "v11",
        "23/24"
    ]
}