From patchwork Thu Nov 20 23:33:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 25137 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 AFC14BD80A for ; Thu, 20 Nov 2025 23:34:20 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 51D2E60AC8; Fri, 21 Nov 2025 00:34:20 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="O2YUoith"; dkim-atps=neutral Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E2FF160AA2 for ; Fri, 21 Nov 2025 00:34:17 +0100 (CET) Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-42b3b29153fso858624f8f.3 for ; Thu, 20 Nov 2025 15:34:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1763681657; x=1764286457; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=w7kqIVIEHI/hwzMu7gLLNDIA8aJkeSYOyl1cHM2SUhY=; b=O2YUoithUS8Nb81yXVROini0oJocs08eovJxV8mBWaR4XUNqX/7WXvnsHdKt8/C0Mv rqkjDsoNyYq6PunE8AjVeMFSqxgXAk1dmjJXEf+nS50J/uIilp7fzSy95+lhhe4v2MoL LNVjztt/cP8PJcyDwrQYUSzyAb6SCbhW88P7jUVnzajsGvazA7zejtw9oKqtZcjcfDfa Nst6aChJR9hWNKyOJSuQ2taxTBLZxTKatjakLy/ZAVCV6tNGUaq9xPtj3OBlW0n16m2R emMBEZjG1i22l4RQyVC9QEW3mTTloSkqUxIruW1zjIqZHPYbHmiilMhLs4YwZQ9ODPTg tGBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763681657; x=1764286457; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=w7kqIVIEHI/hwzMu7gLLNDIA8aJkeSYOyl1cHM2SUhY=; b=pdQBDl4aTh/2GRoBYXF+DzExkGETjvxpksY3f3fzvLvQgZJY6SFrH7+VN2gqwIZApv abLqkY+2r0H3Ygydzm0o+bzIrkOcco4NpnlfdLdCwgRVlK20lvL+HVSQ8GnPWNJlqVhC C3zHbpwLFyz4swwS9fgQVqiDJrfAGEka2gtQNL6c9RDje+Sj2VqP042G9DIMqRks0+TM H8+ssDYASdWb3kN4TVJS8ag/3n9oF3wxTmbD+vg7vnKlB2LHLAPCntcNAYikbDCk8cOe Ymc+aAzK5GATTAWGj3P4XJCT+UGKJAm3WeMwTAs7aL/yq1E/uh891hkgaBaeX7+h0mEE Dk/g== X-Gm-Message-State: AOJu0YyrvJM549RE1vI8Sf9h5As1XN5p2thB3bRnIYWltqojylhJowuh 7FF4jDJZBmZwPV6E3xFJewbU61GP+sfZmCdF5ZQH9HWn3mKNZVYI+0IrxU/PCB1egfw9Q1SFwfG a/AyEwfw= X-Gm-Gg: ASbGncvBXwGvKg1sSqG1/zx0fThq4cWpnH8HXyM47oZKYXoZYj2eBVPwSvuoTQuFhVz sAoOlagd0BnY7UgT07To0ubG3iDXayy8u8P2Qa2HzGTzX5wFiaa47NLPyjzZLOZOGXfLAIbQZ/2 sepdymaj3zInP+d8ZZo8TJ1w0yPVY6Wp441JI8XCUHHVB8koo+io0sBKSM39jd3Ec1x6aQY3PBX t2hBVJxZ/TF5edojq7D2NrCWaCsG/NZ5WpNqS0JGua4uX8LnRa2G+HpT2MNGJrrPWjylfThEEHV yq6+UZT1Aohd9jEaTkdANb458ysEfqEoummN1e4S/RmdoIPMiiofYI2wK/ZWUAGRo4ohwzEkz2c vYBDVE62HvCPXAvfTtBRYSKNnTWi7d4hiQWvzXiymJpjJNwN3yFPz3iaG5mxCDYNMpjSRaM/5bA va3SLb54jfJN1E2xH8v4MOjZuAhmRCIca7Bo73gBeA9LXMZcVVphwuytf2+LeYPhTP7L8= X-Google-Smtp-Source: AGHT+IFB1izsyEpkjdRGqy6ctUKF+EqW3cffPdIFHiBGGwQguZlmu0FgtXN8rU83kQ/Ca8GWOiNoCA== X-Received: by 2002:a5d:64e6:0:b0:42b:36f4:cd20 with SMTP id ffacd0b85a97d-42cc1d2e292mr84540f8f.27.1763681657247; Thu, 20 Nov 2025 15:34:17 -0800 (PST) Received: from inspiron14p-linux.ht.home (188-141-3-146.dynamic.upc.ie. [188.141.3.146]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42cb7fa3a81sm7984139f8f.26.2025.11.20.15.34.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 15:34:16 -0800 (PST) From: Bryan O'Donoghue To: libcamera-devel@lists.libcamera.org Cc: pavel@ucw.cz, Bryan O'Donoghue Subject: [PATCH v4 13/23] libcamera: software_isp: debayer_egl: Make gpuisp default softisp mode Date: Thu, 20 Nov 2025 23:33:37 +0000 Message-ID: <20251120233347.5046-14-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251120233347.5046-1-bryan.odonoghue@linaro.org> References: <20251120233347.5046-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 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" In some cases the GPU can deliver 15x performance in Debayer with the CCM on, reference hardware Qualcomm RB5 with IMX512 sensor. Given this large performance difference it makes sense to make GPUISP the default for the Software ISP. If LIBCAMERA_SOFTISP_MODE is omitted gpu will be the default. If libcamera is compiled without gpuisp support, CPU Debayer will be used. It is still possible to select CPU mode with LIBCAMERA_SOFISP_MODE=cpu. Signed-off-by: Bryan O'Donoghue --- src/libcamera/software_isp/software_isp.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp index 7d21f191c..9944ca573 100644 --- a/src/libcamera/software_isp/software_isp.cpp +++ b/src/libcamera/software_isp/software_isp.cpp @@ -121,10 +121,17 @@ SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor, } stats->statsReady.connect(this, &SoftwareIsp::statsReady); -#if HAVE_DEBAYER_EGL const char *softISPMode = utils::secure_getenv("LIBCAMERA_SOFTISP_MODE"); + if (softISPMode) { + if (strcmp(softISPMode, "gpu") && strcmp(softISPMode, "cpu")) { + LOG(SoftwareIsp, Error) << "LIBCAMERA_SOFISP_MODE " << softISPMode << " invalid. " + << "must be \"cpu\" or \"gpu\""; + return; + } + } - if (softISPMode && !strcmp(softISPMode, "gpu")) +#if HAVE_DEBAYER_EGL + if (!softISPMode || !strcmp(softISPMode, "gpu")) debayer_ = std::make_unique(std::move(stats), configuration); #endif if (!debayer_)