From patchwork Wed Jan 28 11:44:02 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 26008 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 141DCC3200 for ; Wed, 28 Jan 2026 11:44:56 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8147562000; Wed, 28 Jan 2026 12:44:55 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="hIGCOJk6"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 8902661FCB for ; Wed, 28 Jan 2026 12:44:50 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1769600689; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vlyMaPVkPiRoxMTcp+RNi7WZm5uBO/L6zWBKZuwBYF8=; b=hIGCOJk6T6C4W7N/w9PkbYpfOqAMsoxcZjTG7Wtviueu7MoM+6NEBoPnYJbu2le638MN8I 9cq9bPoLQEtN9hy3f/OMFYunZ2lpaxhCsnczzmtDuGG8sLU9x+RwMiFwKGIxWqFMpHzHDy c8ykKmdlvUwgObILwhN0fXX1SUuqTN4= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-584-X4iOO7ZSOdqK6YLWONfK1Q-1; Wed, 28 Jan 2026 06:44:46 -0500 X-MC-Unique: X4iOO7ZSOdqK6YLWONfK1Q-1 X-Mimecast-MFC-AGG-ID: X4iOO7ZSOdqK6YLWONfK1Q_1769600685 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1E8BF18005AD; Wed, 28 Jan 2026 11:44:45 +0000 (UTC) Received: from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.34.236]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 26FAD19560B2; Wed, 28 Jan 2026 11:44:42 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , Kieran Bingham , =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= , Robert Mader Subject: [PATCH v5 15/15] libcamera: ipa: simple: Disable Ccm algorithm by default again Date: Wed, 28 Jan 2026 12:44:02 +0100 Message-ID: <20260128114402.31570-16-mzamazal@redhat.com> In-Reply-To: <20260128114402.31570-1-mzamazal@redhat.com> References: <20260128114402.31570-1-mzamazal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: yA4PgvtCqzC6Z-jwcLnyvFZLR_W5OIwobtNq56I6a_0_1769600685 X-Mimecast-Originator: redhat.com X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The default CCM in uncalibrated.yaml is just an identity transformation and has been enabled by default only to always provide a correction matrix to GPU ISP. It slows down CPU ISP when CCM is not used. Now, when a default correction matrix is always provided to GPU ISP, we can disable the Ccm algorithm in uncalibrated.yaml again. The check for ccmEnabled in GPU ISP is no longer needed and it must be removed in order not to fail when Ccm algorithm is not enabled. ccmEnabled flag is still needed in CPU ISP where the processing differs based on whether CCM is present or not. Reviewed-by: Barnabás Pőcze Reviewed-by: Robert Mader Signed-off-by: Milan Zamazal --- src/ipa/simple/data/uncalibrated.yaml | 12 ++++++------ src/libcamera/software_isp/debayer_egl.cpp | 5 +---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/ipa/simple/data/uncalibrated.yaml b/src/ipa/simple/data/uncalibrated.yaml index c6feda36d..fc90ca526 100644 --- a/src/ipa/simple/data/uncalibrated.yaml +++ b/src/ipa/simple/data/uncalibrated.yaml @@ -8,12 +8,12 @@ algorithms: # Color correction matrices can be defined here. The CCM algorithm # has a significant performance impact, and should only be enabled # if tuned. - - Ccm: - ccms: - - ct: 6500 - ccm: [ 1, 0, 0, - 0, 1, 0, - 0, 0, 1] + # - Ccm: + # ccms: + # - ct: 6500 + # ccm: [ 1, 0, 0, + # 0, 1, 0, + # 0, 0, 1] - Adjust: - Agc: ... diff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp index 722778103..4d0caa6ef 100644 --- a/src/libcamera/software_isp/debayer_egl.cpp +++ b/src/libcamera/software_isp/debayer_egl.cpp @@ -288,7 +288,7 @@ unsigned int DebayerEGL::frameSize() int DebayerEGL::configure(const StreamConfiguration &inputCfg, const std::vector> &outputCfgs, - bool ccmEnabled) + [[maybe_unused]] bool ccmEnabled) { if (getInputConfig(inputCfg.pixelFormat, inputConfig_) != 0) return -EINVAL; @@ -296,9 +296,6 @@ int DebayerEGL::configure(const StreamConfiguration &inputCfg, if (stats_->configure(inputCfg) != 0) return -EINVAL; - if (!ccmEnabled) - return -EINVAL; - const Size &stats_pattern_size = stats_->patternSize(); if (inputConfig_.patternSize.width != stats_pattern_size.width || inputConfig_.patternSize.height != stats_pattern_size.height) {