Patch Detail
Show a patch.
GET /api/1.1/patches/25535/?format=api
{ "id": 25535, "url": "https://patchwork.libcamera.org/api/1.1/patches/25535/?format=api", "web_url": "https://patchwork.libcamera.org/patch/25535/", "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": "<20251212002937.3118-21-bryan.odonoghue@linaro.org>", "date": "2025-12-12T00:29:31", "name": "[v8,20/26] libcamera: software_isp: ccm: Add self-initialising identity CCM to Ccm::init", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "0d73314e3e6815df884bf544882a07b60e83a323", "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/25535/mbox/", "series": [ { "id": 5657, "url": "https://patchwork.libcamera.org/api/1.1/series/5657/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5657", "date": "2025-12-12T00:29:11", "name": "Add GLES 2.0 GPUISP to libcamera", "version": 8, "mbox": "https://patchwork.libcamera.org/series/5657/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/25535/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/25535/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 6C10DBD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Dec 2025 00:34:28 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1A6B561918;\n\tFri, 12 Dec 2025 01:34:28 +0100 (CET)", "from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com\n\t[IPv6:2607:f8b0:4864:20::102a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4A87B61919\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 01:34:26 +0100 (CET)", "by mail-pj1-x102a.google.com with SMTP id\n\t98e67ed59e1d1-349bb6f9c86so906052a91.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 11 Dec 2025 16:34:26 -0800 (PST)", "from inspiron14p-linux (p99250-ipoefx.ipoe.ocn.ne.jp.\n\t[153.246.134.249]) by smtp.gmail.com with ESMTPSA id\n\t41be03b00d2f7-c0c26eb0f6bsm3317282a12.14.2025.12.11.16.34.22\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 11 Dec 2025 16:34:24 -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=\"DDIGjP5g\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1765499665; x=1766104465;\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=VNUHfHpg2M2YuqSAMwLvCr/seKArsWE4nrFMPIDyMeI=;\n\tb=DDIGjP5g8vXnNnIboMRfaez2sa9Cc2WiFylh1L0Mn4XXWQhWQ5idRk646XvXPNPqzP\n\tV3TScyOsdz2zln8PCeXuk3lAKdXTXPDdyNP7U4mzbT7BeVjtckQ9+E5xy9kZD75zTRXY\n\tK5z1GhhRgMNcTG5xINnT709pa10pGWazkux7MJQIEJhV2zW6x8GUpkvhUB6YUN6M9z3z\n\tj0cmK7zs+apmOAG+zydtLq36MtwnR7pZuNT8bxC3Zqect4ZfX1bDMiGx/V/ciMXPBKgj\n\tPK6VB2fjPVioaoPtSROOH1MmrLP/I8uLej+Wx89jZDPT0mzQO0XUQRnQtANjmBfea/E8\n\tCBsw==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1765499665; x=1766104465;\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=VNUHfHpg2M2YuqSAMwLvCr/seKArsWE4nrFMPIDyMeI=;\n\tb=N/hD6CMZKVcsr2/1ViYsYPRJ5eDGvd+x+NyUhQiM82MeQbIexiLb2K/9AH4/mS75pY\n\twvjU70sKsvboLMAtkHLUEhPZOQOz3tnRrXOb+VNGads/5nhsHNiWv+26gYb60tvmqVkv\n\t5tjTNAWyaScKKUZz7Rnged8VP/K53yCF8PoGRDtRhKwrvpdyzALdaW03nrnNdIghW9bg\n\tFpsMfnHJ0pND8ObRGykz/Ca3zloXccMTXxpMCxnPoMMxDTZQtl1uFX44m3jUi2YKR2dw\n\tlFJ4/mTUI66wKOKrLTGxEI50LeRHy4Ku1vo0BrSf8u4f0el+RqjM2RBXV/YFvBOZ8VrK\n\tKZyw==", "X-Gm-Message-State": "AOJu0YwV48rj3FCKlM/A+G7kBrBPdY/uox+IHdn9/tpSjJJ7b3o/YIeq\n\t2xBmzTx/VAzxG131smAlSONMMy9fXs2UYH0XCyr+jrwHSZnToNPfgpExL+rdQizgPbPnqeSodFD\n\tb9LGu", "X-Gm-Gg": "AY/fxX6ESlWtTwe+Wo357UvvOn+09RnECSD1izMatU6Ch2jsTDxvoI4eWdsoMFi5jVi\n\tNdXJGaKJi7NWObciiT/ELXVNRSeUm/h4PmCgvjbPRewtptV+4ERC92qUJ5cVYp5UspLkOpPeMYf\n\t7o26MYUzQynLNLmInUgexejBZZg7/K9ewmhzCozqL7RBKgpTFyEFCG4CnWTw3ZNyfHFY1jQYmFr\n\t171W+3bJzjHMRo2W3zpqa5mX0o7FsC0rPMY2CYu9X2/Uo/d1ogS/tD4dzUZ+Ix5wKQh2gejIpX2\n\tvCNlzEwJb4FVq77DysKb3Pllb5GdLphF9axxaWzQ4UfN4y+Vxw2QnQ+5u3TWzO+FkVPnijmKPM3\n\t3/RF8QK3P8vTv5AsGoBgpLgfQcS18CL3IGNthm+MNeH8bozRLY067m/tDDbHYzcEyXjAm03CTFV\n\tUvW4YCCbIjCjnilgWH5l9lvhgGtj3YI8pRkQPbFblOWUHwSC3nLjAxNzrrynw=", "X-Google-Smtp-Source": "AGHT+IEDcm3QWbbIds8HOaa4svhq96gjtcENALL1wW0LShvBqpU9crGiMP+ZpRZRMBRCo3anVrAERQ==", "X-Received": "by 2002:a05:6a21:6da7:b0:34e:7bef:e820 with SMTP id\n\tadf61e73a8af0-369af90821dmr281696637.41.1765499664583; \n\tThu, 11 Dec 2025 16:34:24 -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 v8 20/26] libcamera: software_isp: ccm: Add self-initialising\n\tidentity CCM to Ccm::init", "Date": "Fri, 12 Dec 2025 00:29:31 +0000", "Message-ID": "<20251212002937.3118-21-bryan.odonoghue@linaro.org>", "X-Mailer": "git-send-email 2.52.0", "In-Reply-To": "<20251212002937.3118-1-bryan.odonoghue@linaro.org>", "References": "<20251212002937.3118-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": "We have a need to generate an identity CCM when running the GPUIsp without\na sensor tuning file.\n\nA preivous patch added a selfInitialising bool to the IPAContext structure.\nWhen that bool is true generate an identity CCM at colour temperature\n6500k.\n\nSigned-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n---\n src/ipa/simple/algorithms/ccm.cpp | 22 ++++++++++++++++------\n 1 file changed, 16 insertions(+), 6 deletions(-)", "diff": "diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp\nindex 0a98406c1..ac1ce1685 100644\n--- a/src/ipa/simple/algorithms/ccm.cpp\n+++ b/src/ipa/simple/algorithms/ccm.cpp\n@@ -27,13 +27,23 @@ namespace ipa::soft::algorithms {\n \n LOG_DEFINE_CATEGORY(IPASoftCcm)\n \n-int Ccm::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData)\n+int Ccm::init([[maybe_unused]] IPAContext &context, [[maybe_unused]] const YamlObject &tuningData)\n {\n-\tint ret = ccm_.readYaml(tuningData[\"ccms\"], \"ct\", \"ccm\");\n-\tif (ret < 0) {\n-\t\tLOG(IPASoftCcm, Error)\n-\t\t\t<< \"Failed to parse 'ccm' parameter from tuning file.\";\n-\t\treturn ret;\n+\tif (!context.selfInitialising) {\n+\t\tint ret = ccm_.readYaml(tuningData[\"ccms\"], \"ct\", \"ccm\");\n+\t\tif (ret < 0) {\n+\t\t\tLOG(IPASoftCcm, Error)\n+\t\t\t\t<< \"Failed to parse 'ccm' parameter from tuning file.\";\n+\t\t\treturn ret;\n+\t\t}\n+\t} else {\n+\t\t/* Initialize with identity CCM at standard D65 color temperature */\n+\t\tMatrix<float, 3, 3> identityMatrix = Matrix<float, 3, 3>::identity();\n+\n+\t\tstd::map<unsigned int, Matrix<float, 3, 3>> ccmData;\n+\t\tccmData[6500] = identityMatrix;\n+\n+\t\tccm_ = Interpolator<Matrix<float, 3, 3>>(std::move(ccmData));\n \t}\n \n \tcontext.ccmEnabled = true;\n", "prefixes": [ "v8", "20/26" ] }