{"id":25779,"url":"https://patchwork.libcamera.org/api/patches/25779/?format=json","web_url":"https://patchwork.libcamera.org/patch/25779/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260114113016.25162-15-mzamazal@redhat.com>","date":"2026-01-14T11:30:16","name":"[v3,14/14] libcamera: ipa: simple: Disable Ccm algorithm by default again","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"c2afed69a8da08b4f1aefece81466febd0e03720","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/?format=json","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/25779/mbox/","series":[{"id":5706,"url":"https://patchwork.libcamera.org/api/series/5706/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5706","date":"2026-01-14T11:30:02","name":"Simple pipeline IPA cleanup","version":3,"mbox":"https://patchwork.libcamera.org/series/5706/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/25779/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/25779/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 67055C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 14 Jan 2026 11:31:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1C0DE61FD7;\n\tWed, 14 Jan 2026 12:31:16 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CEFBD61FC6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 14 Jan 2026 12:31:14 +0100 (CET)","from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-338-_U0ywzi1NjqaNA63_xROHQ-1;\n\tWed, 14 Jan 2026 06:31:08 -0500","from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.93])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id A6836180057E; Wed, 14 Jan 2026 11:31:07 +0000 (UTC)","from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.32.217])\n\tby mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 34C1E18004D8; Wed, 14 Jan 2026 11:31:05 +0000 (UTC)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"QKtxZ6Pd\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1768390273;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=b+Z6EBDWWahsE034X9Fogftd//pSeUogq83V6JYZG7A=;\n\tb=QKtxZ6PdlaW+xc4ijFiT6UtxD8cD6nQrcdjjACqGlk3OEtESyxaIoShJt8MeHglRuefh8U\n\t9WpBuVjJJTe1ByoMFVM/XZqrbrkC1Bvc8lbbQvRgTw7MP9TK2hh+57yN+4skWhOZqiIm6i\n\tOHf4QQXrRLM4d68zfENNL3AEW6noc7w=","X-MC-Unique":"_U0ywzi1NjqaNA63_xROHQ-1","X-Mimecast-MFC-AGG-ID":"_U0ywzi1NjqaNA63_xROHQ_1768390267","From":"Milan Zamazal <mzamazal@redhat.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Milan Zamazal <mzamazal@redhat.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?=\n\t<barnabas.pocze@ideasonboard.com>","Subject":"[PATCH v3 14/14] libcamera: ipa: simple: Disable Ccm algorithm by\n\tdefault again","Date":"Wed, 14 Jan 2026 12:30:16 +0100","Message-ID":"<20260114113016.25162-15-mzamazal@redhat.com>","In-Reply-To":"<20260114113016.25162-1-mzamazal@redhat.com>","References":"<20260114113016.25162-1-mzamazal@redhat.com>","MIME-Version":"1.0","X-Scanned-By":"MIMEDefang 3.4.1 on 10.30.177.93","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"MUit8RG4WCUZXRvrGfdexTqv9-zinjj6Q8_oI8T_rVY_1768390267","X-Mimecast-Originator":"redhat.com","Content-Transfer-Encoding":"8bit","content-type":"text/plain; charset=\"US-ASCII\"; x-default=true","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":"The default CCM in uncalibrated.yaml is just an identity transformation\nand has been enabled by default only to always provide a correction\nmatrix to GPU ISP.  It slows down CPU ISP when CCM is not used.\n\nNow, when a default correction matrix is always provided to GPU ISP, we\ncan disable the Ccm algorithm in uncalibrated.yaml again.  The check for\nccmEnabled in GPU ISP is no longer needed and it must be removed in\norder not to fail when Ccm algorithm is not enabled.  ccmEnabled flag is\nstill needed in CPU ISP where the processing differs based on whether\nCCM is present or not.\n\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\n---\n src/ipa/simple/data/uncalibrated.yaml      | 12 ++++++------\n src/libcamera/software_isp/debayer_egl.cpp |  5 +----\n 2 files changed, 7 insertions(+), 10 deletions(-)","diff":"diff --git a/src/ipa/simple/data/uncalibrated.yaml b/src/ipa/simple/data/uncalibrated.yaml\nindex c6feda36d..fc90ca526 100644\n--- a/src/ipa/simple/data/uncalibrated.yaml\n+++ b/src/ipa/simple/data/uncalibrated.yaml\n@@ -8,12 +8,12 @@ algorithms:\n   # Color correction matrices can be defined here. The CCM algorithm\n   # has a significant performance impact, and should only be enabled\n   # if tuned.\n-  - Ccm:\n-      ccms:\n-        - ct: 6500\n-          ccm: [ 1, 0, 0,\n-                 0, 1, 0,\n-                 0, 0, 1]\n+  # - Ccm:\n+  #     ccms:\n+  #       - ct: 6500\n+  #         ccm: [ 1, 0, 0,\n+  #                0, 1, 0,\n+  #                0, 0, 1]\n   - Adjust:\n   - Agc:\n ...\ndiff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp\nindex ddf03ad4b..b3994c29e 100644\n--- a/src/libcamera/software_isp/debayer_egl.cpp\n+++ b/src/libcamera/software_isp/debayer_egl.cpp\n@@ -288,7 +288,7 @@ unsigned int DebayerEGL::frameSize()\n \n int DebayerEGL::configure(const StreamConfiguration &inputCfg,\n \t\t\t  const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs,\n-\t\t\t  bool ccmEnabled)\n+\t\t\t  [[maybe_unused]] bool ccmEnabled)\n {\n \tif (getInputConfig(inputCfg.pixelFormat, inputConfig_) != 0)\n \t\treturn -EINVAL;\n@@ -296,9 +296,6 @@ int DebayerEGL::configure(const StreamConfiguration &inputCfg,\n \tif (stats_->configure(inputCfg) != 0)\n \t\treturn -EINVAL;\n \n-\tif (!ccmEnabled)\n-\t\treturn -EINVAL;\n-\n \tconst Size &stats_pattern_size = stats_->patternSize();\n \tif (inputConfig_.patternSize.width != stats_pattern_size.width ||\n \t    inputConfig_.patternSize.height != stats_pattern_size.height) {\n","prefixes":["v3","14/14"]}