From patchwork Thu Nov 27 02:37:29 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: 25251 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 EE730C0F2A for ; Thu, 27 Nov 2025 02:38:18 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8436360B2F; Thu, 27 Nov 2025 03:38:18 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="tI5cza/4"; dkim-atps=neutral Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2CC4660AB7 for ; Thu, 27 Nov 2025 03:38:15 +0100 (CET) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-477b198f4bcso1723525e9.3 for ; Wed, 26 Nov 2025 18:38:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764211094; x=1764815894; 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=i8EigPEvYaH2gSH8JSHJbCseJKpik1Nyc/20liFxLWw=; b=tI5cza/4onCcJRgREVTKeE8mbVNy9lQNeIOXtffxP3/w74/CwbnhSmkkZY4/j238mm BJEmq0GQ3cNY1pAFQP1gXRuPmheK4XLVvRtw3taxbrPC9mn/zmWKh1pjcXmACp9mn2YI dBXZm3KGaOZP6RJDxTpkJgljkYVacnv0AFkLmnm9ECnviO5PcmCSleiVxbhutBA29ptL 6OfCOE3xD+ljofnEm+QS6yCuXz9UPVekBPAcjTW9RQTG4xoZhFIaJj6+W9UjBtA/rMfC Hz3DLqJN6tusjgYczEqva31zYKdTER2RKUNArFOO7qPUFPtTk68qeChY5WK/Z8vh4vmE niMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764211094; x=1764815894; 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=i8EigPEvYaH2gSH8JSHJbCseJKpik1Nyc/20liFxLWw=; b=oYh+3rPg2c4l604Gi3Q3J43lHypW+F55U9HgJ0YGjpBpxO4zBTg3WRjDHat8orNUDh 9VIqj0gix5VGXXPXMkpfZPFHPUHvVaOdQjepShOIOHV0DStsnpu6PQLr3mYz5XRoAuTV Tt/sq7N0fyuaUsUOHaXGNtWoHn2+DV0M5TZPhGmEMCYlh8PA7+h7pbZx/3JgJyRmpl9h FJt5wWk1ZbIvwDSufkeoOrTq83VKK3XOgTc7yleyXL2UejS/TnCL75qnw7O4fc1vpR9v 8YpOIumDRWwUIlbobvQPcIcncbWYkKrkzi1JIyjxzGM8Dw1PVvlNjwq/MJNKMY40sN/X V1rg== X-Gm-Message-State: AOJu0YyeZPA4CWeMMuk0kg+pH5R6dRT/JktOQ7yY4JmtUMhyrE+ZRZcd /fqlPoV9VV83s8FOrjzmZLm/GZhVsIlLr9p169uTDcKE8gkIMUAVLbKDlYqsn3zxjya6r2+RVBz 2fXp2o94= X-Gm-Gg: ASbGncsYPrLXVn34I+Zsm5WrigO4pSfhESEIJrpCpaf7+6jkYheufteEbwPxqjRwZGL XXCev/k21+1syfUOi/04Dk8CkQKzlTSQWIV9zsNhPttn0/GPHUD4HcJc4h062LyNF4FwabzsbkH d4xtKtYsrsWUHRypOjlJvRME44Ga5jhJT+QA/z+HEXQZi2kcHt4VcrnsyWfXYhRG19KFQPN0A9Q dys0aJHuTLIhYu/24gXWEOuaXZSQnq0ZC/E8PIKgFQQZgQNn1ENwy3QxcoQ3oGRx74OMfV+5XpK pN2cmEXsmdNy8ZD8EEFCHlvm+WIQEH0Tq7A0Q6X1PUdLUPF9f2tD2tTwvt9yiPHxWtzgcwIRXfO poGrwSY0HvpSNz2B2mjSVzGBT1gzk1PvqEcUOq5BWHFPdGjwc4YK7Xq43Nlle71eVX2my9PnwON fKim6CgmRlB1nFuflG5iKf6+vd9vvl55X2NYw4l8JvbrLIVP7xKQNV4LlfONjMx2yB8Tw= X-Google-Smtp-Source: AGHT+IGLVm3kND/2YaGeOn9w8G+REHNi2OaV/9FIz+fRfdBoXHt1XP6KJbKhffPBVehNxJ+uCM17xA== X-Received: by 2002:a05:600c:4fcc:b0:471:9da:5252 with SMTP id 5b1f17b1804b1-477c01ebe2amr206500015e9.29.1764211094428; Wed, 26 Nov 2025 18:38:14 -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 5b1f17b1804b1-4790552c3c9sm58186345e9.0.2025.11.26.18.38.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Nov 2025 18:38:13 -0800 (PST) From: Bryan O'Donoghue To: libcamera-devel@lists.libcamera.org Cc: pavel@ucw.cz, Bryan O'Donoghue Subject: [PATCH v5 14/24] libcamera: software_isp: debayer_egl: Make gpuisp default softisp mode Date: Thu, 27 Nov 2025 02:37:29 +0000 Message-ID: <20251127023739.179652-15-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251127023739.179652-1-bryan.odonoghue@linaro.org> References: <20251127023739.179652-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 223c1d4be..a54dcbaf5 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); if (!debayer_) { LOG(SoftwareIsp, Error) << "Failed to instantiate GPUISP";