Show a patch.

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

{
    "id": 26165,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/26165/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/26165/",
    "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": "<20260216190204.106922-4-johannes.goede@oss.qualcomm.com>",
    "date": "2026-02-16T19:02:02",
    "name": "[3/5] software_isp: debayer_cpu: Group innerloop variables together",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "d593f11c4aba7efdfd79b4f3e736c1050fd1f41f",
    "submitter": {
        "id": 242,
        "url": "https://patchwork.libcamera.org/api/1.1/people/242/?format=api",
        "name": "Hans de Goede",
        "email": "johannes.goede@oss.qualcomm.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/26165/mbox/",
    "series": [
        {
            "id": 5794,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5794/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5794",
            "date": "2026-02-16T19:01:59",
            "name": "software_isp: debayer_cpu: Add multi-threading support",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5794/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/26165/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/26165/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 24671C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Feb 2026 19:02:16 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D47CB62212;\n\tMon, 16 Feb 2026 20:02:15 +0100 (CET)",
            "from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n\t[205.220.168.131])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 63CFC62201\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Feb 2026 20:02:12 +0100 (CET)",
            "from pps.filterd (m0279864.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n\t61GH4XCA1545248 for <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Feb 2026 19:02:10 GMT",
            "from mail-vk1-f199.google.com (mail-vk1-f199.google.com\n\t[209.85.221.199])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cc7ajr8nt-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Feb 2026 19:02:10 +0000 (GMT)",
            "by mail-vk1-f199.google.com with SMTP id\n\t71dfb90a1353d-567503c3dbdso5295664e0c.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Feb 2026 11:02:10 -0800 (PST)",
            "from shalem\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-b8fc735e587sm276698966b.2.2026.02.16.11.02.07\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 16 Feb 2026 11:02:08 -0800 (PST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=qualcomm.com header.i=@qualcomm.com\n\theader.b=\"MmENt5Ft\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n\theader.b=\"bQrk8eSH\"; dkim-atps=neutral",
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:date:from:in-reply-to:message-id\n\t:mime-version:references:subject:to; s=qcppdkim1; bh=UlDgFMps2ge\n\trX/b1RmWRBztHRaK0o9MdqNKO/MQzYBY=; b=MmENt5FtKEzPhihm3/Z7nhmgxQL\n\t8kqq+8/vDu3Wk8yEGW7eX07nIAgIrqHoCkr6wF2LM4qyUl3u5uuVGLLNSdb1uYSM\n\t6pGvS3h5zrlU/tpKy5dsLcdH/XcEgUke8ex2qJ2hDs4RCwZJ0gh0nsrK+xAAnJut\n\tghffuw6FGzM6wWi9ma6r4vYZLvfxxOhDlOx2kpyO1CDSSANrqxYKstPtFLnlz9p5\n\tiBhxxwEcWC92s7w/pD33cCgsmvx8gSA0tvrBBMDoCsApG5G41bWe4CiBbvV5Kmng\n\tEE61bGxOgCsOM0aRQ7p7iSCxCQYxHPiBusS7viepzwEc9WsmxmOtzqk6dTg==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=oss.qualcomm.com; s=google; t=1771268529; x=1771873329;\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=UlDgFMps2gerX/b1RmWRBztHRaK0o9MdqNKO/MQzYBY=;\n\tb=bQrk8eSH0JFa0TTGbdKE0KDISiiqCRNxqoxNbz0wKgxvvzrGuthJ74VRtoa/jGjCYx\n\txbAQIysD8Y+ydsR6BDFrTF4KCZ+c6UZODSfF/r6mZEoFqkRKTkcvEVZgh6Hh6abWAFAd\n\tdecMIqi8AQDFYcP3a4xhnWjtNwxVrJZp1pa/oul1JIax+Q67G6PgPcHBR3FAeMRclGOT\n\taeOeN79mcCEmCs/Bnf5/rVLLyoEs2eDEjAd6S4g5cM2CUA+tdnYv8HrDyaxx6gkrPHlG\n\tEpztY/KKc/NhHEzTLr85PtCqa8g1x3Se28wr85o1zzSloLe5WYO0TOZNl+d85fk+ul8p\n\tFURw=="
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1771268529; x=1771873329;\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=UlDgFMps2gerX/b1RmWRBztHRaK0o9MdqNKO/MQzYBY=;\n\tb=J48zI2tMRjsKH6L4Tuk+AkY2sNhRL9OvJTXgP4ELiTHHbCAUzkX5Lidur6iDOaD1yS\n\tvUYw0hKraLoEd6xmXxozsuMcWGFDkQC6qoe3cIlplsINnKJjjMEoZ0UvDS1WUXkeQdCY\n\taS6rE1Juhxy7D0HiOxqA5uzPzpvmvwuSOFRFYX7wKdIBrJ8wwTaiA1NorsLwDmej4dKR\n\tv1FEAYuuSMq3kdJlcQ2lXXVYRjRhBV2/lT/ZNweoOXR0ot8IeVb+pMkAOEIrASRBZK6k\n\tONIvM06i3Kv0bO6sjPGyVJLoAieGvmf57I/hwn9Xprl9ZWWSV4BRtYD9IBQ0cPSt6mjx\n\tZhqA==",
        "X-Gm-Message-State": "AOJu0YxgGY5g+IH1ljweYSzJM0pePmlt7LKqorFg5PW2hPlrZNcwvN5K\n\tg8z/pXjV9USGokgF+HawWE6WqOH7bCkZCOH+YkSOus4P8qaOaKqrL/ODCbL15bqiswavUloY7h1\n\t9o1M/61vyXTDG7mUISKejHAU1XkNF72csBtc9+v+BAMF5KOt0FzQGY+yAUsjcF3his48VavH2az\n\tQ5z/5C5Chb",
        "X-Gm-Gg": "AZuq6aIMA4Oy791r+IrWJHQH2KIa9vYBSlZeP629VfI8sG8GSnG0BbqkoPKSqopbctR\n\tVnylWhdv+y9RsOOEWVHgV+ZTC6XPYW6J87kokb76RyuXaO69RGIpMq2GG/T7T7maeoKmJcM2M/g\n\tQQYkzJgBvhFGtTjO8nkpIUiktEPiJAB8hDbA+SzgC93XZnzQu7tskt9wcm9FRFRSfc1ppSP5/bB\n\t2uyeajAnXP1XDnY3jr3JS5iec0o8kr36Vk/n01fgK+7jGiTaLPSZIkg5H9x+f8Wf+JzcvmLCnGH\n\tod99fZhPptwQWwbwxHuS9ppAgxCwlaVEWizQTZIYZ2oiiOi4mPJgqs7zGYgkOIHQelWtuZnh6c3\n\tgGOAgRzbWGAgOLTT03fLDAZpxtYp+4e5oeyxQXMvm4902ivjlfpl1BkuASHxoiRNmBVegkl6bPm\n\tog932i/ymPKg4Gji0kW3WEGdk5FnGMRgLQy507",
        "X-Received": [
            "by 2002:a05:6122:8284:b0:55f:c318:1afa with SMTP id\n\t71dfb90a1353d-56889b68e4fmr2774292e0c.6.1771268529138; \n\tMon, 16 Feb 2026 11:02:09 -0800 (PST)",
            "by 2002:a05:6122:8284:b0:55f:c318:1afa with SMTP id\n\t71dfb90a1353d-56889b68e4fmr2774248e0c.6.1771268528624; \n\tMon, 16 Feb 2026 11:02:08 -0800 (PST)"
        ],
        "From": "Hans de Goede <johannes.goede@oss.qualcomm.com>",
        "To": "libcamera-devel@lists.libcamera.org, Milan Zamazal <mzamazal@redhat.com>",
        "Cc": "Hans de Goede <johannes.goede@oss.qualcomm.com>",
        "Subject": "[PATCH 3/5] software_isp: debayer_cpu: Group innerloop variables\n\ttogether",
        "Date": "Mon, 16 Feb 2026 20:02:02 +0100",
        "Message-ID": "<20260216190204.106922-4-johannes.goede@oss.qualcomm.com>",
        "X-Mailer": "git-send-email 2.52.0",
        "In-Reply-To": "<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>",
        "References": "<20260216190204.106922-1-johannes.goede@oss.qualcomm.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMjE2MDE2MyBTYWx0ZWRfX8C6/Lmys7wL0\n\tVu5LM/v1x79o5EwKXm2A+LqLS8772oWv39j0Db9BdF5W3vRhw8Uj8ANSXhQ5jGQjrgpnhJxBLdy\n\tCFeN/QOjrH+QI+4CSbhCpMeB93mOC3J9jPMRpZL4xDfO2XbtY1sOhE/UsQawCjPE3VlEpOZXueA\n\tYrTrhiq7O18e5vFKeTuIbvLzxG7BEuVaf/xU3aM5IaT5C+idH5s8WuLrf/nWjpkTNNAf3EYBvGa\n\tGGwio2XsYGtkPo8ov/C1lR1PYxKXiykLLBGupgc+eFGKP33lPDkiM4TAtewBncCoRDwAJdHUbdt\n\tXgNR30Gm9lcmssfGKru73MF04pCAlh828Gn0yi3c0LOQtFy8x334o73Pf4rtjBLJcSZ9BMYKzII\n\t1ZUulAd0nBrtQpuB/Y2ahZ0NXoIMR//lrO4rJbUlZq6rWOzErppqVJq+pCsB1BHt1IJWT3Vng6D\n\tlO7MyvIl4THlF9AnFTw==",
        "X-Proofpoint-ORIG-GUID": "wmZiOMpz7I56ixSz9mrl8Msn3w_uIIaf",
        "X-Authority-Analysis": "v=2.4 cv=BryQAIX5 c=1 sm=1 tr=0 ts=699369b2 cx=c_pps\n\ta=+D9SDfe9YZWTjADjLiQY5g==:117 a=xqWC_Br6kY4A:10 a=HzLeVaNsDn8A:10\n\ta=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22\n\ta=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=8m3Se83TVroFe3lHWL4A:9\n\ta=vmgOmaN-Xu0dpDh8OwbV:22",
        "X-Proofpoint-GUID": "wmZiOMpz7I56ixSz9mrl8Msn3w_uIIaf",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n\tengine=ICAP:2.0.293, Aquarius:18.0.1121, Hydra:6.1.51,\n\tFMLib:17.12.100.49\n\tdefinitions=2026-02-16_06,2026-02-16_04,2025-10-01_01",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\timpostorscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0\n\tphishscore=0\n\tclxscore=1015 adultscore=0 bulkscore=0 priorityscore=1501\n\tmalwarescore=0\n\tclassifier=typeunknown authscore=0 authtc= authcc= route=outbound\n\tadjust=0\n\treason=mlx scancount=1 engine=8.22.0-2601150000\n\tdefinitions=main-2602160163",
        "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": "Group variables used every pixel together, followed by variables used\nevery lines and then lastly variables only used every frame.\n\nThe idea here is to have all the data used every pixel fit in as few\ncachelines as possible.\n\nBenchmarking does not show any differerence before after, possibly\nbecause most of the per pixel lookup tables where already grouped\ntogether.\n\nDespite that this still seems like a good idea.\n\nSigned-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>\n---\n src/libcamera/software_isp/debayer_cpu.h | 13 ++++++++-----\n 1 file changed, 8 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/src/libcamera/software_isp/debayer_cpu.h b/src/libcamera/software_isp/debayer_cpu.h\nindex 800b018c..a54418dc 100644\n--- a/src/libcamera/software_isp/debayer_cpu.h\n+++ b/src/libcamera/software_isp/debayer_cpu.h\n@@ -135,6 +135,7 @@ private:\n \t};\n \tusing LookupTable = std::array<uint8_t, kRGBLookupSize>;\n \tusing CcmLookupTable = std::array<CcmColumn, kRGBLookupSize>;\n+\t/* Variables used every pixel */\n \tLookupTable red_;\n \tLookupTable green_;\n \tLookupTable blue_;\n@@ -143,24 +144,26 @@ private:\n \tCcmLookupTable blueCcm_;\n \tstd::array<double, kGammaLookupSize> gammaTable_;\n \tLookupTable gammaLut_;\n-\tbool ccmEnabled_;\n-\tDebayerParams params_;\n-\tSwIspStats statsBuffer_;\n+\tRectangle window_;\n \n+\t/* Variables used every line */\n+\tSwIspStats statsBuffer_;\n \tdebayerFn debayer0_;\n \tdebayerFn debayer1_;\n \tdebayerFn debayer2_;\n \tdebayerFn debayer3_;\n-\tRectangle window_;\n \tstd::unique_ptr<SwStatsCpu> stats_;\n \tunsigned int lineBufferLength_;\n \tunsigned int lineBufferPadding_;\n \tunsigned int xShift_; /* Offset of 0/1 applied to window_.x */\n \tbool enableInputMemcpy_;\n-\n \tstatic constexpr unsigned int kMaxThreads = 4;\n \tstruct DebayerCpuThreadData threadData_[kMaxThreads];\n+\n+\t/* variables used every frame */\n \tunsigned int threadCount_;\n+\tbool ccmEnabled_;\n+\tDebayerParams params_;\n };\n \n } /* namespace libcamera */\n",
    "prefixes": [
        "3/5"
    ]
}