Show a cover letter.

GET /api/1.1/covers/26996/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 26996,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/26996/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/26996/",
    "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": "<20260621-kbingham-awb-saturation-v1-0-b91ea59c6cfb@ideasonboard.com>",
    "date": "2026-06-20T23:00:27",
    "name": "[0/7] softisp: Fix Saturation and Black level handling",
    "submitter": {
        "id": 4,
        "url": "https://patchwork.libcamera.org/api/1.1/people/4/?format=api",
        "name": "Kieran Bingham",
        "email": "kieran.bingham@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/26996/mbox/",
    "series": [
        {
            "id": 6009,
            "url": "https://patchwork.libcamera.org/api/1.1/series/6009/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=6009",
            "date": "2026-06-20T23:00:27",
            "name": "softisp: Fix Saturation and Black level handling",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/6009/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/26996/comments/",
    "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 A20B5C3302\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 20 Jun 2026 23:00:39 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7E3F8656ED;\n\tSun, 21 Jun 2026 01:00:38 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A906D62899\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 21 Jun 2026 01:00:35 +0200 (CEST)",
            "from [192.168.0.240]\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 68D5D268;\n\tSun, 21 Jun 2026 00:59:58 +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=\"mZRMYwfr\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1781996398;\n\tbh=GEfoEN3ghhPlv/gvooYO+ub6IZZjZR4W2vbpoEOPL00=;\n\th=From:Subject:Date:To:Cc:From;\n\tb=mZRMYwfrzz+03ZZTYLDqNPir/Wq8mlmK2dZqC9MZ6Gv1rj99qbOFVjtV2F5/xR4Z3\n\tFY0mCyXK0dGV8PnD34Z1XJz+WANCd+LloO2VAOl+wQBJ6DwxGK3HiwI1vx26pbw1zy\n\ti0SpZUhkLLkwphTVnmOjkuXqZzxnbhgRkPDDFm+Q=",
        "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>",
        "Subject": "[PATCH 0/7] softisp: Fix Saturation and Black level handling",
        "Date": "Sun, 21 Jun 2026 00:00:27 +0100",
        "Message-Id": "<20260621-kbingham-awb-saturation-v1-0-b91ea59c6cfb@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "X-B4-Tracking": "v=1; b=H4sIAAAAAAAC/x3MTQ5AMBBA4avIrE1SFQ2uIhZTBhNR0vpLxN01l\n\tm/xvQcCe+EAdfKA51OCrC5GlibQTeRGRuljg1baKKMVzlbcONGCdFkMtB+e9mgwr1gb22e2KBV\n\tEvXke5P7PTfu+HxnFz6hpAAAA",
        "X-Change-ID": "20260620-kbingham-awb-saturation-39e26bd1b580",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Kieran Bingham <kieran.bingham@ideasonboard.com>, \n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>, \n\tMilan Zamazal <mzamazal@redhat.com>, \n\tBryan O'Donoghue <bryan.odonoghue@linaro.org>",
        "X-Mailer": "b4 0.14.2",
        "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1781996434; l=2584;\n\ti=kieran.bingham@ideasonboard.com; s=20260204;\n\th=from:subject:message-id; \n\tbh=GEfoEN3ghhPlv/gvooYO+ub6IZZjZR4W2vbpoEOPL00=;\n\tb=XydkjB7VP9I4PgKUq48vz39eLOvvv79xidsU40zG0lCokSPBUXANP9QR7NtWbhdcJWvHgHOvp\n\tuKSPz9ZZpb6CPxUhpAB0kQ5ldyTLn9AxyA2ptvuIEmi4SIIXgt1kixY",
        "X-Developer-Key": "i=kieran.bingham@ideasonboard.com; a=ed25519;\n\tpk=IOxS2C6nWHNjLfkDR71Iesk904i6wJDfEERqV7hDBdY=",
        "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": "These patches have floated around in various forms and versions, but\nthis series aims to collate the main parts of fixing black level and\nsaturation bugs in the SoftISP for both GPU ISP and CPU ISP.\n\nThis is predominantly fixed by splitting the AWB gains out of the CCM\nwhich has previously been 'combined'. Combining means we do not\ncorrectly saturate at the sensor levels when applying gains. So now we\ncna do that and clamp accordingly.\n\nTo get there, I've added a new clamp operation to the Vector class (and\nfixed up one usage of that in the rkisp1 ... yeah - I'm trying not to go\ndown rabbit holes, and focus on saturation but adding a clamp was a\nprevious review request ...)\n\nI've made use of Milan's existing Black Level Correction fixes, and\npicked up and applied all previous review comments and refactoring to\nget here.\n\nSo far - this is tested on my x13s laptop (with an arbitrary tuning file\nto make sure the CCM is tested) for both GPU and CPU ISP....\n\nPlease test if you can and I'm really keen to merge these so that\nboth Jacopo's and Bryan's work can be rebased on top.\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\nKieran Bingham (4):\n      libcamera: vector: Add clamp operation\n      ipa: rkisp1: awb: Utilise clamp function\n      softisp: Split AWB from Combined Matrix\n      shaders: bayer: Use native matrix multiplication\n\nMilan Zamazal (3):\n      ipa: simple: Limit the black level value\n      libcamera: software_isp: Fix black level application in GPU ISP\n      libcamera: software_isp: Fix black level handling in CPU ISP\n\n include/libcamera/internal/vector.h        |  8 ++++\n src/ipa/rkisp1/algorithms/awb.cpp          |  2 +-\n src/ipa/simple/algorithms/awb.cpp          | 16 ++------\n src/ipa/simple/algorithms/blc.cpp          |  7 ++--\n src/ipa/simple/ipa_context.h               |  5 +--\n src/libcamera/shaders/bayer_1x_packed.frag | 51 +++++-------------------\n src/libcamera/shaders/bayer_unpacked.frag  | 51 +++++-------------------\n src/libcamera/software_isp/debayer_cpu.cpp | 64 ++++++++++++++----------------\n src/libcamera/software_isp/debayer_egl.cpp | 18 +++------\n src/libcamera/software_isp/debayer_egl.h   |  3 ++\n src/libcamera/vector.cpp                   |  8 ++++\n test/vector.cpp                            |  1 +\n 12 files changed, 83 insertions(+), 151 deletions(-)\n---\nbase-commit: 84e1336956a78f7b416f8bd2abf747d93ad64260\nchange-id: 20260620-kbingham-awb-saturation-39e26bd1b580\n\nBest regards,"
}